Azure EventHub Push/Pull?



说到Apache Kafka,在消费者方面,我知道这是一个拉动模型。Azure EventHubs 怎么样?他们是拉还是推?

从我目前收集到的内容来看,与 kafka 事件中心不同,事件中心将事件"推送"给侦听器。有人可以确认吗?任何其他细节或参考资料都会有所帮助。

一个简单的谷歌搜索让我登陆这个页面来支持我的主张

有没有一种简单的方法来检验这个理论?

是的,Azure 事件中心将事件推送到事件使用者,无需"轮询"来使用事件。事件处理器定义在新事件引入事件流时调用event handlers。 事件使用者可以执行称为checkpoint的操作,用于标记事件已使用的事件。 有关更多详细信息,请参阅文档。

对此的简短回答是,使用事件的模型取决于应用程序选择使用的客户端类型。 官方 Azure SDK 包提供基于推送和基于拉取的使用者类型。

你没有提到你正在使用的具体语言,但是,由于你正在与Kafka进行比较,我假设你对Java感兴趣。azure-messaging-eventhubs系列包是当前一代的 Azure SDK,具有以下用于读取事件的客户端:

  • EventProcessorClient:这是一个基于推送的客户端,旨在充当大多数工作负载的生产方案中事件的主要使用者。它负责读取和处理事件中心所有分区的事件,并使用相同的事件中心和使用者组与其他 EventProcessorClient 实例协作,以平衡它们之间的工作。内置高度的容错能力,使处理器在面对错误时具有弹性。

  • EventHubConsumerAsyncClient:这是一个基于推送的客户端,专注于通过 Reactor 库使用基于 Flux 的订阅从单个分区读取事件。此客户端要求应用程序负责复原和处理状态持久性。

  • EventHubConsumerClient:这是一个基于拉取的客户端,专注于使用迭代器模式从单个分区读取事件。此客户端要求应用程序负责复原和处理状态持久性。

有关包、其类型和基本用法的详细信息,请参阅适用于 Java 的 Azure 事件中心客户端库概述。 可以在示例概述中找到更详细的示例,包括使用事件和使用事件处理器客户端的示例。

在谷歌搜索...轮毂是一个拉格是一个推... 谷歌搜索...

最新更新