Azure EventHub推/拉?

w6mmgewl  于 2022-12-30  发布在  其他
关注(0)|答案(2)|浏览(126)

说到Kafka,在消费者方面我知道它是一个拉模式。那么Azure EventHub呢?他们是拉还是推?
从我目前收集到的信息来看,不像Kafka的事件中心,它把事件“推”给听众。有人能证实吗?任何额外的细节或参考资料都会很有帮助。
一个简单的谷歌搜索降落在这个页面上,我支持我的索赔
有没有一个简单的方法来验证这个理论?

1l5u6lss

1l5u6lss1#

是,Azure Event Hub事件推送到事件使用者,* 不 * 需要“轮询”来使用事件。事件处理器定义event handlers,在将新事件接收到事件流中时调用event handlers。事件使用者可以执行称为checkpoint的操作,标记已使用事件的事件。有关详细信息,请参阅文档。

s3fp2yjn

s3fp2yjn2#

简短的答案是,使用事件的模型取决于应用程序选择使用的客户端类型。官方Azure SDK包提供基于推送和基于拉取的使用者类型。
你没有提到你使用的具体语言,但是,由于你是在与Kafka进行比较,我假设你对Java感兴趣。azure-messaging-eventhubs系列包是当前一代Azure SDK,具有以下用于读取事件的客户端:

  • EventProcessorClient:这是一个基于推送的客户端,旨在用作大多数工作负荷的生产方案中事件的主要使用者。它负责读取和处理事件中心所有分区的事件,并与使用相同事件中心和使用者组的其他EventProcessorClient示例协作,以平衡它们之间的工作。内置了高度的容错功能。从而允许处理器在面对错误时具有弹性。
  • EventHubConsumerAsyncClient:这是一个基于推送的客户端,主要用于通过Reactor库使用基于Flux的订阅从单个分区读取事件。此客户端要求应用程序自己负责恢复和处理状态持久性。
  • EventHubConsumerClient:这是一个基于pull的客户端,主要用于使用迭代器模式从单个分区读取事件,该客户端要求应用程序自己负责恢复和处理状态持久性。

有关Azure Event Hubs client library for Java overview中的软件包、其类型和基本用法的更多信息。可以在samples overview中找到更详细的示例,包括Consuming eventsUsing the EventProcessorClient的示例。

相关问题