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

群体中的Kafka单一消费者失败

西门山
2023-03-14

我正处于探索Kafka0.8.1.1版本的初始阶段。

  1. 使用API进行触发器再平衡
  2. 将kafka配置为等待消费者活动一段时间,并假设它被不优雅地关闭,自动重新平衡。

这里的问题是,分配给死亡使用者的分区中的所有消息都保留在队列中,并且在重新平衡发生之前不会被处理。

共有1个答案

燕光熙
2023-03-14

重新平衡将自动发生,这可以在使用者配置(zookeeper.session.timeout.ms)中设置。根据文件

ZooKeeper.session.timeout.ms:ZooKeeper会话超时。如果消费者在这段时间内没有对动物园管理员心跳,它被认为已经死亡,并将发生再平衡。默认值为6000毫秒

同一组中的另一个活动使用者将在超时间隔后开始接收消息。

使用者再平衡失败(您将看到ConsumerRebalanceFailedException):这是由于两个使用者试图拥有同一个主题分区时发生冲突。日志将显示是什么导致了冲突(搜索“冲突中”)。

  1. 如果用户订阅了许多主题,而ZK服务器很忙,这可能是由于用户没有足够的时间查看同一组中所有用户的一致视图造成的。如果是这种情况,请尝试增加rebalance.max.retries和rebalance.backoff.ms.
  2. 另一个原因可能是其中一个消费者被硬杀死了。在重新平衡过程中,其他消费者不会意识到消费者在Zookeeper.session.timeout.ms时间之后已经消失了。在这种情况下,请确保rebalance.max.retries*rebalance.backoff.ms>zookeeper.session.timeout.ms.
 类似资料:
  • 我在使用Kafka时遇到了一些问题。非常感谢任何帮助!我在docker swell中分别有zookeeper和kafka集群3个节点。您可以在下面看到Kafka代理配置。 我的情况: < li > 20x位制片人不断向Kafka主题传达信息 < li>1x消费者读取和记录消息 < li >终止kafka节点(docker容器停止),因此现在群集有2个Kafka代理节点(第3个节点将自动启动并加入群

  • null null 使用简单消费者或低级消费者可以控制分区,但如果一个实例宕机,其他三个实例将不会处理来自第一个实例中使用的分区的消息

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

  • 当一个组中只有一个消费者,并且认为消费者无法在session.time.out内进行轮询时,将触发重新平衡,但是在这种情况下,组中只有一个消费者,现在假设session.time.out是30秒和消费者民意调查后50秒组协调员将识别消费者后50秒,并允许它提交偏移或协调员将断开消费者和没有偏移得到提交,并将重新平衡消费者与新的消费者标识?如果上次提交的偏移量是345678,在下一次轮询中,它处理了

  • 我是Kafka的新手,正在学习Kafka内部知识。请根据需要随时更正我的理解。。 这是我的实时场景..感谢所有的回复: 我有一个接收数据文件的实时FTP服务器…比如索赔文件。 我将把这些数据发布到一个主题中.让我们把这个主题称为claims_topic(2个分区). 我需要订阅这个claims_topic,阅读消息并将它们写入Oracle和Postgres表。让我们将oracle表称为Otable

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