【Azure 事件中心】从Azure Event Hub中消费数据,如何查看当前消费客户端消费数据的Offset和SequenceNumber呢(消息偏移量和序列号)?

简介: 【Azure 事件中心】从Azure Event Hub中消费数据,如何查看当前消费客户端消费数据的Offset和SequenceNumber呢(消息偏移量和序列号)?

问题描述

当通过Azure Event Hub SDK消费Event Hub中的消息时,必须指定一个Storage Account(存储账号)用于保存 Checkpoint (检查点)。

 

比如在C#代码中,需要指定Storage Account Connection String 和一个Blob Container的名称。其他语言代码也是一样,都需要指定Storage Account。

private const string ehubNamespaceConnectionString = "<EVENT HUBS NAMESPACE - CONNECTION STRING>";
    private const string eventHubName = "<EVENT HUB NAME>";
    private const string blobStorageConnectionString = "<AZURE STORAGE CONNECTION STRING>";
    private const string blobContainerName = "<BLOB CONTAINER NAME>";
...... 
  static async Task Main()
    {
        // Read from the default consumer group: $Default
        string consumerGroup = EventHubConsumerClient.DefaultConsumerGroupName;
        // Create a blob container client that the event processor will use 
        storageClient = new BlobContainerClient(blobStorageConnectionString, blobContainerName);
        // Create an event processor client to process events in the event hub
        processor = new EventProcessorClient(storageClient, consumerGroup, ehubNamespaceConnectionString, eventHubName);
        // Register handlers for processing events and handling errors
        processor.ProcessEventAsync += ProcessEventHandler;
        processor.ProcessErrorAsync += ProcessErrorHandler;
        // Start the processing
        await processor.StartProcessingAsync();
        // Wait for 30 seconds for the events to be processed
        await Task.Delay(TimeSpan.FromSeconds(30));
        // Stop the processing
        await processor.StopProcessingAsync();
    }

 

那么,在Storage Account中如何查看Offest 和 Sequence Number的值呢?

 

解答如下

 

如上图,在Azure门户页面中,进入当前使用的Storage Account页面:

  1. 在指定的Container中,SDK会自动创建一个以Event Hub Namespace主机域名为名的Folder
  2. 然后是Event Hub -> 消费组(默认为 $default) --> Checkpint --> 分区号(从0开始,1,2 ...)
  3. 在以分区号为名称的Blob的元数据(Metadata)记录了sequencenumber 和 offset的值。

 

PS: 当删除或修改这个值后,如果重启Event Hub的消费端,这会导致数据从新的OFFSET开始获取。

 

参考资料

Checkpoint: https://docs.azure.cn/zh-cn/event-hubs/event-processor-balance-partition-load#checkpointing

向 Azure 事件中心发送事件及从 Azure 事件中心接收事件 - .NET (Azure.Messaging.EventHubs): https://docs.azure.cn/zh-cn/event-hubs/event-hubs-dotnet-standard-getstarted-send#receive-events

相关文章
|
弹性计算 编解码 Cloud Native
IP报文在阿里云上的神奇之旅系列一:同地域内云上通信
一个IP报文如何跨越万水千山达到目的地?本文将以阿里云为例,带领大家一起探索同地域内云上通信的全过程,完整展现云上同地域内各种场景的IP报文之旅,深入理解云网络技术、产品和通信。
1410 2
IP报文在阿里云上的神奇之旅系列一:同地域内云上通信
|
NoSQL Redis
Redis安装布隆(Bloom Filter)过滤器
Redis安装布隆(Bloom Filter)过滤器
765 0
Redis安装布隆(Bloom Filter)过滤器
|
存储 Java 开发工具
【Azure 事件中心】Event Hubs如何获取其中存放的历史消息
【Azure 事件中心】Event Hubs如何获取其中存放的历史消息
144 1
|
4月前
|
开发者
HarmonyOS NEXT实战:网络图片加载和失败占位图
本教程介绍如何在HarmonyOS应用中实现网络图片加载时显示加载图、加载完成后显示图片、加载失败时显示占位图的功能。内容涵盖Image组件的alt、onComplete、onError等接口使用,适用于教育和实战开发场景。
172 0
|
SQL XML JSON
在 SQL Server 中使用字符串转义
【8月更文挑战第5天】
1201 7
在 SQL Server 中使用字符串转义
|
12月前
|
Shell Docker Python
LLM-02 大模型 本地部署运行 ChatGLM3-6B(13GB) 双卡2070Super8GB 环境配置 单机多卡 基于LLM-01章节 继续乘风破浪 为大模型微调做准备
LLM-02 大模型 本地部署运行 ChatGLM3-6B(13GB) 双卡2070Super8GB 环境配置 单机多卡 基于LLM-01章节 继续乘风破浪 为大模型微调做准备
338 2
|
12月前
|
人工智能 监控 安全
掌握Windows管理利器:WMI命令实战
本文介绍了Windows Management Instrumentation (WMI) 的基本概念和用途,通过多个实用的`wmic`命令示例,如获取CPU信息、查看操作系统详情、管理服务、检查磁盘空间等,展示了WMI在系统维护中的强大功能。适合IT专业人士学习和参考。
662 4
|
存储
全局变量和局部变量在堆和栈的区别
全局变量和局部变量在堆和栈的区别
893 0
|
调度
【Cron表达式】cron表达式详细介绍以及常用的例子
【Cron表达式】cron表达式详细介绍以及常用的例子
4716 2
|
存储 编译器 C语言
c语言中int的作用和类型
c语言中int的作用和类型
976 0