当前位置: 首页 > 知识库问答 >
问题:

Azure EventHub与消费者群体的关系

颛孙英勋
2023-03-14
    null

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

  1. 每个消费者都将获得所有消息。
  2. 租约被分配了一个EventProcessorHost,所以它需要一个唯一的名称,所以这里的使用者组名称实际上并不相关。
  3. 仍然不能百分之百确定context.checkpointasync,但我相信它只适用于ConsumerGroup?

共有1个答案

岳玉堂
2023-03-14

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

如果您使用不同的使用者组名称X和Y,那么X上的处理器将只与X上的处理器协调,Y上的处理器将只与Y上的处理器协调。如果两个不同的处理器位于不同的使用者组中,您可以在两个不同的处理器上使用相同的名称。也就是说,您可以在X中使用EventProcessorHost“One”,在Y中使用另一个EventProcessorHost“Two”,它们不应该干涉。

当检查点进行时,它确实只是在该消费者组中进行。正如我在这里提到的,我相信偏移是在用于协调租赁的blob中跟踪的。因此,每个ConsumerGroup都可以在不知道其他ConsumerGroup的情况下进行检查(但可能不应该检查每个消息)。

 类似资料:
  • 我是Kafka的新手。我看了一眼Kafka文档。似乎分派给订阅消费者组的消息是通过将分区与消费者实例绑定来实现的。 在使用Apache Kafka时,我们应该记住一件重要的事情,即同一消费者组中的消费者数量应该小于或等于所使用主题中的分区数量。否则,将不会收到来自主题的任何消息。 在非prod环境中,我没有配置主题分区。在这种情况下,Kafka是否只有一个分区。如果我启动共享同一组的多个消费者并向

  • 我在使用Kafka时遇到了一些问题。非常感谢任何帮助!我在docker swell中分别有zookeeper和kafka集群3个节点。您可以在下面看到Kafka代理配置。 我的情况: < li > 20x位制片人不断向Kafka主题传达信息 < li>1x消费者读取和记录消息 < li >终止kafka节点(docker容器停止),因此现在群集有2个Kafka代理节点(第3个节点将自动启动并加入群

  • 我正在阅读Kafka常见问题解答,他们如下所示。 •每个分区不会被每个使用者组中的多个使用者线程/进程使用。这允许每个进程以单线程方式使用,以保证分区内的使用者的顺序(如果我们将有序消息分割成一个分区并将它们传递给多个使用者,即使这些消息是按顺序存储的,它们有时也会被无序地处理)。 有没有可能,

  • 我以前认为设置我的消费者将始终收到他们尚未收到的消息,但最近我发现情况并非如此。这只在使用者尚未提交抵消时才起作用。在任何其他情况下,使用者将继续接收偏移大于其提交的最后偏移的消息。 由于我总是使用随机的组ID创建新的使用者,我意识到我的使用者“没有内存”,他们是新的使用者,并且他们永远不会提交偏移,因此策略将始终适用。我的疑虑就从这里开始了。假设以下场景: 我有两个客户端应用程序,A和B,每个客

  • 我正在使用kafka 0.10 kafkaConsumer API获取消费者和消费者订阅下的主题集。 现在我可以通过topiclist方法成功地获取主题和分区。 要获取消费者组数据,我在KafkaConsumer下找不到方法,但我可以通过“zookeeper.getChildren(ZkUtils.ConsumerPath(),false);”从zookeeper获取组列表。 我的问题是如何得到群

  • 是否有一种方法以编程方式访问和打印使用者滞后偏移,或者说使用者读取的最后一条记录的偏移与某个生产者写入该使用者分区的最后一条记录的偏移之间的位置差。 要知道我的最终目标是将这个值发送到prometheus进行监视,我应该在上面添加哪些语句来得到滞后偏移值?