Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 当卡夫卡经纪人在消费者群体协调方面失败时会发生什么?_Apache Kafka_Kafka Consumer Api - Fatal编程技术网

Apache kafka 当卡夫卡经纪人在消费者群体协调方面失败时会发生什么?

Apache kafka 当卡夫卡经纪人在消费者群体协调方面失败时会发生什么?,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,如上所述。假设我有3个经纪人。当我以消费者身份连接时,其中一个代理将成为组协调员。然后我杀了一个经纪人(或者它死了)。如果我尝试立即重新连接到代理,则会出现协调员不可用错误 卡夫卡是如何知道经纪人去世的?需要多长时间才能指派一名新的协调员?它是如何配置的 这应该在文档中,但我找不到它。我相信动物园管理员会处理你提出的所有问题 ApacheKafka的一个关键依赖项是ApacheZooKeeper,它是一个分布式配置和同步服务。Zookeeper充当卡夫卡经纪人和消费者之间的协调接口。卡夫卡服务器

如上所述。假设我有3个经纪人。当我以消费者身份连接时,其中一个代理将成为组协调员。然后我杀了一个经纪人(或者它死了)。如果我尝试立即重新连接到代理,则会出现协调员不可用错误

卡夫卡是如何知道经纪人去世的?需要多长时间才能指派一名新的协调员?它是如何配置的


这应该在文档中,但我找不到它。

我相信动物园管理员会处理你提出的所有问题

ApacheKafka的一个关键依赖项是ApacheZooKeeper,它是一个分布式配置和同步服务。Zookeeper充当卡夫卡经纪人和消费者之间的协调接口。卡夫卡服务器通过Zookeeper集群共享信息。Kafka在Zookeeper中存储基本元数据,例如关于主题、代理、使用者偏移量(队列读取器)等的信息

由于所有关键信息都存储在Zookeeper中,并且Zookeeper通常会在其集合中复制这些数据,因此Kafka broker/Zookeeper的故障不会影响Kafka集群的状态。一旦动物园管理员重新启动,卡夫卡将恢复状态。这使卡夫卡零停机时间。卡夫卡经纪人之间的领导人选举也通过在领导人失败的情况下使用Zookeeper来完成
我建议浏览一下博客



我建议阅读以下StackOverflow帖子和Kafka Confluence Wiki以了解内部内容


卡夫卡的新版本略有不同,即u消费者_补偿(用于存储消费者的补偿)存储在代理中,而不是Zookeeper,coordinator+Zookeeper用于维护消费者组声明。

您使用的卡夫卡版本是什么?您能否成功验证组协调器故障恢复?我有一个带有3个代理的测试拓扑,一旦消费者组协调器崩溃,主题就会得到正确的重新平衡,但是消费者组停止接收消息。使用版本0.11.0。1@Yamada是的,但这需要时间。它确实取决于您使用的客户端在什么级别运行。可以依赖协调器,也可以在客户机中手动执行。我遇到过这两种情况,这让人头痛不已。@marvel208消费单位补偿在最新版本的Kafka 0.11.0.0中存储在代理级别。因此,代理状态可能会影响整个集群的状态。@marvel308实际上不会。Zookeeper只是状态存储(复制+一些逻辑)。但实际的经纪人充当协调者。我想知道Kafka是如何管理失去协调器领导的识别的,它是如何分配一个新的协调器,以及如何配置它的以及他们的领导人,当新领导人当选或分区数量发生变化时,动物园管理员将及时更新他们的领导人。@FindingTheOne是的,我知道这就是为什么我在commentsHi@marvel308中询问版本号,您是否建议使用监管流程来管理动物园管理员?这两个流程都没有描述作为协调人的代理失败时会发生什么。我确实在这篇文章中发现了协调人故障转移方面的内容。这更接近实际情况。我正在寻找实际的机制和配置控制。每当当前协调器的托管服务器死亡时,其他协调器的选举人将通过ZK侦听器意识到这一点,并将尝试重新选举为领导者,无论谁获胜,都将触发协调器启动过程。这确实表明这是通过一个动物园管理员来完成的。我在Kafka文档中没有看到协调器控制的任何配置。接下来的步骤可能是检查测试运行中的日志和卡夫卡代码。