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 事件中心存储容器配置