请帮我澄清一下。
- 当处理来自 Azure 事件中心的事件并使用 ConsumerGroupName X 创建 EventProcessorHost 时。如果我在多个进程(而不是线程)上执行此操作,并且我创建多个 EventProcessorHost 都使用 ConsumerGroupName X。然后他们会从同一个分区中读取,因此多次获得相同的事件(在比赛条件下)?
- 当使用 ConsumerGroupName X 和另一个 ConsumerGroupName Y 处理事件时,两个 ConsumerGroup 是获取所有事件还是每个都只从某个分区获取事件?
- 在 IEventProcessor 的 ProcessEventsAsync 中处理事件时。什么 await context.CheckpointAsync(); 实际上呢?它是仅为 ConsumerGroup 设置检查点,还是为 EventHub 设置全局设置,以便永远不会再查看这些事件。这里的上下文是租用的分区吗?
编辑:好的,所以我取得了一些进展(如果我错了,请纠正我):
- 每个消费者都会收到所有的消息。
- 租约被分配了一个 EventProcessorHost,因此它需要一个唯一的名称,因此消费者组名称在这里并不真正相关。
- 仍然不能 100% 确定 context.CheckpointAsync,但我相信它只适用于 ConsumerGroup?