Azure EventHub 和 ConsumerGroups 之间的关系

Relationship between Azure EventHub and ConsumerGroups

请帮我澄清一下。

编辑:好的,所以我取得了一些进展(如果我错了请纠正我):

  1. 每个消费者都会收到所有的消息。
  2. 租约被分配了一个 EventProcessorHost,因此它需要一个唯一的名称,因此消费者组名称在这里并不真正相关。
  3. 仍然不能 100% 确定 context.CheckpointAsync,但我相信它仅适用于 ConsumerGroup?

是的,如果您为多个 EventProcessorHost 提供相同的消费者组名称,那么它们将使用 blob 租约进行协调(假设您为它们提供了不同的唯一标识符),因此一次只有一个在一个分区上工作。通常,您会在多台机器上拥有多个进程,以便并行化工作。随着进程重新启动(存在延迟),分区可以并且将会在机器之间移动。

如果您使用不同的消费者组名称 X 和 Y,则 X 上的处理器将仅与 X 上的处理器协调,Y 上的处理器将仅与 Y 上的处理器协调。您可以在两个不同的处理器上使用相同的名称如果每个人都在不同的消费者群体中。也就是说,您可以在 X 中让 EventProcessorHost 为“一个”,在 Y 中让另一个 EventProcessorHost 为“二”,它们不应该相互干扰。

当检查点进程时,它确实只针对该 ConsumerGroup 内部。正如我提到的 我相信在用于协调租约的 blob 内部跟踪偏移量。因此,每个 ConsumerGroup 都可以在不了解对方的情况下进行检查(但可能不应该对每条消息进行检查)。