Azure 事件中心 - 特定分区上的 EventProcessorClient

Posted

技术标签:

【中文标题】Azure 事件中心 - 特定分区上的 EventProcessorClient【英文标题】:Azure Event Hub - EventProcessorClient on specific partition 【发布时间】:2022-01-04 13:03:43 【问题描述】:

我正在使用 EventProcessorClient 从事件中心读取事件。如何限制此客户端从特定分区读取?

我是这样创建的:

EventProcessorClientBuilder eventProcessorClientBuilder = new EventProcessorClientBuilder()
                .connectionString(connectionString, eventHubName)
                .consumerGroup(EventHubClientBuilder.DEFAULT_CONSUMER_GROUP_NAME)
                .processEvent(IncomingEventProcessor.processEvent)
                .processError(processError)
                .checkpointStore(new BlobCheckpointStore(blobContainerAsyncClient));

        EventProcessorClient eventProcessorClient = eventProcessorClientBuilder.buildEventProcessorClient();

将为事件中心上的所有事件调用“processEvent”中的函数引用器 - 所有分区。我可以在该函数中检查事件与哪个分区相关,但我希望只接收来自特定分区的事件。

这可以使用 EventProcessorClient 吗?

【问题讨论】:

【参考方案1】:

我发现EventProcessorClient 是自平衡的 - 即它将在连接到事件中心的实例数量上分配分区。

【讨论】:

【参考方案2】:

使用 EventProcessorClient 是不可能的,但是您可以使用 EventHubConsumerAsyncClient 类来实现您正在寻找的see doc, 它包含一个receiveFromPartition 方法

【讨论】:

以上是关于Azure 事件中心 - 特定分区上的 EventProcessorClient的主要内容,如果未能解决你的问题,请参考以下文章

Azure 事件中心 Event Grid(事件网格)+Azure Functions处理IOT Hub中的消息

Azure 事件中心Spring Cloud Stream Event Hubs Binder 发送Event Hub消息遇见 Spec. Rule 1.3

Azure 事件中心吞吐量

具有输入绑定的 Azure 函数的 Azure 事件中心存储容器配置

Android 上的 Azure 通知中心。如何发送给特定用户?

Azure 事件中心 - 如何使用官方 SDK 并行使用事件?