【Azure 事件中心】在Service Bus Explorer工具种查看到EventHub数据在分区中的各种属性问题
问题描述
通过Service Bus Explorer工具,查看到Event Hub的属性值,从而产生的问题及讨论:
- Size in Bytes: 这个是表示当前分区可以存储的最大字节数吗?
- LastEnqueuedOffset: 这个是表示是最后一条消息在这个分区上的字节偏移量吗?
- Incoming / OutgoingBytesPerSecond: 这两个值是0,是按照多长的时间跨度算的这个值?
- Begin Sequence Number: 这个是在这个消费者组的视角下未被消费的消息的起始消息号吗?
- End Sequence Number: 这个是在这个消费者组的视角下未被消费的消息的结束消息号?
- 如果Event Hub下有两个消费者组,一个Default,一个是自建的,两个消费者组看到的内容是一样的吗?
问题回答
Size in Bytes: 这个是表示当前分区可以存储的最大字节数吗?
【答】:Size in Bytes是指事件分区的大小
LastEnqueuedOffset: 这个是表示是最后一条消息在这个分区上的字节偏移量吗?
【答】:LastEnqueuedOffset 是指最后一个进入队列的事件的偏移量
Incoming / OutgoingBytesPerSecond: 这两个值是0,是按照多长的时间跨度算的这个值?
【答】:Incoming / OutgoingBytesPerSecond是指此使用者组中分区的事件的大致传入/传出速率(非100%精确,仅供参照)
Begin Sequence Number: 这个是在这个消费者组的视角下未被消费的消息的起始消息号吗?
【答】:Begin Sequence Number分区数据中开始获取的第一个事件的序列号(因为Event Hub中的数据会过期清理,所以里面会不会永久保存),所以该值也表示当前分区中现存事件的第一条消息序列号。
End Sequence Number: 这个是在这个消费者组的视角下未被消费的消息的结束消息号?
【答】: End Sequence Number分区数据中开始获取的最后一个事件的序列号就是结束序列号,所以该值也表示当前分区中现存事件中最后一条消息的序列号。
注:End Sequence Number - Begin Sequence Number = Total Message
如果Event Hub下有两个消费者组,一个Default,一个是自建的,两个消费者组看到的内容是一样的吗?
【答】:多个消费组所消费的EventHub数据是一样的。
衍生问题:
1) 在代码中设置了消费者组的 Checkpoint 保存位置,官方文档说EventHub的 Checkpoint 不保存在 Broker (服务端)上,由客户端指定保存位置。那是不是如果用多个客户端使用同一个消费者组消费,但是每个客户端设置的checkpoint存储位置都不一样,那么每个客户端都能成功消费到事件,但是实际还是各自消费,消费的事件是重复的?
【答】:是的,消费者组都是分别处理的,消费的事件是重复的。
2)消费端消费的时候,有一个start-position,可以取值EARLIEST和LATEST,如果消费端已经有了 Checkpoint ,这个start-position具体时什么时候起作用?
start-position:Whether the consumer receives messages from the beginning or end of event hub. if EARLIEST
, from beginning. If LATEST
, from end. Default: LATEST
【答】:Checkpoint 存储在 Storage Account中。它的目的是:如果读取者与分区断开连接,当它重新连接时,将开始读取前面由该使用者组中该分区的最后一个读取者提交的检查点(Checkpoint), 它会将此偏移量传递给事件中心,以指定要从其开始读取数据的位置。
start-position 连接分区进行消费时候,开始使用使用这个参数,如果设置为EARLIEST,就从start-position这个位置往前读,设置为LATEST就从start-position这个位置往后读。
Checkpoint 和 start-position 有个互斥关系,如果配了其中的某一个,另一个会被忽略。即
- 如果没有分区的checkpoint值,则从该事件位置开始接收也就是从start-position开始。
- 如果有,将使用checkpoint值开始再次消费事件。
参考资料:
Event Hub Consumer Properties:https://docs.microsoft.com/en-us/java/api/overview/azure/spring-cloud-stream-binder-eventhubs-readme?view=azure-java-stable#event-hub-consumer-properties
【Azure 事件中心】在Service Bus Explorer工具种查看到EventHub数据在分区中的各种属性问题的更多相关文章
- 【Azure 事件中心】Azure Event Hub 新功能尝试 -- 异地灾难恢复 (Geo-Disaster Recovery)
问题描述 关于Event Hub(事件中心)的灾备方案,大多数就是新建另外一个备用的Event Hub,当主Event Hub出现不可用的情况时,就需要切换到备Event Hub上. 而在切换的过程中 ...
- 【Azure 事件中心】为应用程序网关(Application Gateway with WAF) 配置诊断日志,发送到事件中心
问题描述 在Application Gateway中,开启WAF(Web application firewall)后,现在需要把访问的日志输出到第三方分析代码中进行分析,如何来获取WAF的诊断日志呢 ...
- 【Azure 事件中心】Event Hub 无法连接,出现 Did not observe any item or terminal signal within 60000ms in 'flatMapMany' 的错误消息
问题描述 使用Java SDK连接Azure Event Hub,一直出现 java.util.concurrent.TimeoutException 异常, 消息为:java.util.concur ...
- 【Azure 事件中心】在微软云中国区 (Mooncake) 上实验以Apache Kafka协议方式发送/接受Event Hubs消息 (Java版)
问题描述 事件中心提供 Kafka 终结点,现有的基于 Kafka 的应用程序可将该终结点用作运行你自己的 Kafka 群集的替代方案. 事件中心可与许多现有 Kafka 应用程序配合使用.在Azur ...
- 【Azure 事件中心】EPH (EventProcessorHost) 消费端观察到多次Shutdown,LeaseLost的error信息,这是什么情况呢?
问题详情 使用EPH获取Event Hub数据时,多次出现连接shutdown和LeaseLost的error ,截取某一次的error log如: Time:2021-03-10 08:43:48 ...
- 【Azure 事件中心】使用Azure AD认证方式创建Event Hub Consume Client + 自定义Event Position
问题描述 当使用SDK连接到Azure Event Hub时,最常规的方式为使用连接字符串.这种做法参考官网文档就可成功完成代码:https://docs.azure.cn/zh-cn/event-h ...
- 【Azure 事件中心】 org.slf4j.Logger 收集 Event Hub SDK(Java) 输出日志并以文件形式保存
问题描述 在使用Azure Event Hub的SDK时候,常规情况下,发现示例代码中并没有SDK内部的日志输出.因为在Java项目中,没有添加 SLF4J 依赖,已致于在启动时候有如下提示: SLF ...
- 【Azure 事件中心】azure-spring-cloud-stream-binder-eventhubs客户端组件问题, 实践消息非顺序可达
问题描述 查阅了Azure的官方文档( 将事件发送到特定分区: https://docs.azure.cn/zh-cn/event-hubs/event-hubs-availability-and-c ...
- 【Azure 服务总线】详解Azure Service Bus SDK中接收消息时设置的maxConcurrentCalls,prefetchCount参数
(Azure Service Bus服务总线的两大类消息处理方式: 队列Queue和主题Topic) 问题描述 使用Service Bus作为企业消息代理,当有大量的数据堆积再Queue或Topic中 ...
随机推荐
- Solon Aop 特色开发(1)注入或手动获取配置
常规操作,先启动 Solon public class App{ public void main(String[] args){ Solon.start(App.class, args); } } ...
- stm32开发笔记(三):stm32系列的GPIO基本功能之输出驱动LED灯、输入按键KEY以及Demo
前言 stm32系列是最常用的单片机之一,不同的版本对应除了引脚.外设.频率.容量等'不同之外,其开发的方法是一样的. 本章讲解使用GPIO引脚功能驱动LED灯和接收Key按钮输入. STM ...
- [c++] 开发问题
语言中的很多细节都是为了应对实际开发中会遇到的问题 当编写程序时,我们使用的定义多数不是自己写的,如sqrt(),是很多年前别人写的,我们只是使用它们 在C++中,对于"别处"定义 ...
- [刷题] 206 Reverse Linked List
要求 反转一个链表 不得改变节点的值 示例 head->1->2->3->4->5->NULL NULL<-1<-2<-3<-4<-5 ...
- 【zombie】如何查看并杀死僵尸进程?
[zombie]如何查看并杀死僵尸进程? 赏金Micheal关注 2019.03.31 19:40:15字数 1,016阅读 4,373 僵尸进程定义 In UNIX System terminolo ...
- ansible-一键完成LNMP架构_期中架构
ansible-一键完成LNMP架构 ansible剧本托管地址 https://github.com/Gshelldong/ansible.git 网站架构图 ansible一键完成lnmp架构 a ...
- 037.Python的UDP语法
UDP语法 1 创建一个socket的UDP对象 import socket #创建对象 socket.SOCK_DGRAM 代表UDP协议 sk = socket.socket(type=socke ...
- S8 Linux磁盘与文件系统管理命令
8.1 fdisk:磁盘分区工具 8.2-3 partprobe.tune2fs 8.4 parted:磁盘分区工具 8.5-7 mkfs.dumpe2fs.resize2fs 8.8-9 fsck. ...
- 8.2-3 partprobe、tune2fs
8.2 partprobe:更新内核的硬盘分区表信息 partprobe命令用于在硬盘分区发生改变时,更新Linux内核中的硬盘分区表数据.有时在使用fdisk.part命令对硬盘进行分区 ...
- 详解 WebRTC 高音质低延时的背后 — AGC(自动增益控制)
前面我们介绍了 WebRTC 音频 3A 中的声学回声消除(AEC:Acoustic Echo Cancellation)的基本原理与优化方向,这一章我们接着聊另外一个 "A" - ...