Val*_*Val 4 servicebus azure azure-eventhub
我想从Microsoft Azure EventHub获取事件数.我可以使用EventHubReceiver.Receive(maxcount)但它在大量大事件上很慢.
有NamespaceManager.GetEventHubPartition(..).EndSequenceNumber属性似乎正在做这个技巧,但我不确定它是否是正确的方法.
EventHub 没有消息计数的概念,因为,EventHub是云上的高吞吐量,低延迟的持久性事件流 - 在给定的时间点获得CORRECT当前计数,下一毫秒将是错误的第二!!因此,没有提供:)
在我看来 - EventHubs应该被命名为StreamHub - 这将使这个显而易见:P
如果您正在寻找的是 - 接收器落后多少 - 那么这EventHubClient.GetPartitionRuntimeInformation().LastEnqueuedSequenceNumber是您最好的选择.
只要没有消息发送到分区,这个值就保持不变:)
在接收方 - 收到消息时 - receivedEventData.SequenceNumber将指示您正在处理的当前序列号和差异.之间EventHubClient.GetPartitionRuntimeInformation().LastEnqueuedSequenceNumber和之间EventData.SequenceNumber可以指示分区的接收器滞后多少 - 基于此,接收器进程可以向上或向下扩展.工人(工作分配逻辑).
[还 - 记住这个差异.是不是欲表示确切消息计数-这是最好的努力,主要是可靠和非常精确.严格保证的EventHubs提供的是 - 任何到达系统的2条消息的顺序都会增加EventHubClient.GetPartitionRuntimeInformation().LastEnqueuedSequenceNumber.
| 归档时间: |
|
| 查看次数: |
3323 次 |
| 最近记录: |