如何在Azure Portal中查看Azure Event Hub已接收的单个事件
Azure Event Hub 本身为流式事件传输管道,默认不会持久化存储并展示单条事件的详细内容,你可以通过以下三种方式完成事件内容校验:
方案1:使用Azure Portal内置的Service Bus Explorer预览功能(无需额外配置)
该方案适合校验发送操作之后新流入的事件:
- 进入目标Event Hub实例的左侧导航栏,找到实体分类下的
Service Bus Explorer(预览)选项 - 进入后选择需要使用的消费者组,默认可使用
$Default官方默认消费者组 - 点击顶部的
开始接收按钮,按需设置接收时长、目标拉取分区、最大拉取事件数量后,即可列表展示捕获到的事件 - 支持直接查看事件的系统属性、自定义头部、消息体内容,同时支持文本、JSON、Base64等多种格式的消息体解析
注意:该功能仅能拉取点击「开始接收」之后新流入的事件,无法回溯接收操作触发之前已流入的历史事件
方案2:开启Event Hub捕获功能回溯全量历史事件
如果需要回溯所有已发送的历史事件,可提前开启捕获功能实现事件持久化存储:
- 进入Event Hub实例左侧菜单栏的设置分类下的
捕获选项 - 开启捕获功能,选择将事件归档到关联的Azure存储账户或者Azure Data Lake Storage Gen2,按需设置捕获时间窗口、文件大小阈值、文件命名规则等配置
- 配置完成后,所有流入Event Hub的事件会自动按规则序列化保存到指定存储容器中,你可以直接在Portal内进入对应的存储容器,下载捕获的Avro格式文件查看事件完整内容,也可以使用Avro解析工具批量解析导出所有事件数据
方案3:本地运行SDK代码拉取事件校验
如果仅需临时校验无需长期配置Portal功能,可直接使用官方SDK编写简单消费者代码拉取事件:
- 使用Azure Event Hub SDK for Java,编写消费者代码连接对应Event Hub实例,指定消费者组和起始偏移量拉取对应分区的事件
- 核心代码示例:
// 构建Event Hub消费者客户端 EventHubConsumerAsyncClient consumer = new EventHubClientBuilder() .connectionString("你的Event Hub连接字符串", "你的Event Hub实例名称") .consumerGroup(EventHubClientBuilder.DEFAULT_CONSUMER_GROUP_NAME) .buildAsyncConsumerClient(); // 从指定分区的最早偏移量开始拉取事件 consumer.receiveFromPartition("目标分区ID", EventPosition.earliest()) .subscribe(eventData -> { // 打印事件自定义头部属性 System.out.println("事件自定义属性:" + eventData.getProperties()); // 打印事件体内容 System.out.println("事件体内容:" + eventData.getBody().toString()); });
内容的提问来源于stack exchange,提问作者once
相关产品推荐
相关产品推荐

