【发布时间】:2017-08-21 21:06:41
【问题描述】:
我们正在使用 Kafka 测试生产者和消费者。几个问题:
当所有代理都关闭并且根本没有响应时会发生什么?
生产者是否需要不断 ping Kafka 代理才能知道它何时在线备份?或者有没有更优雅的方式让 Producer 应用程序知道?
Zookeeper 如何在这一切中提供帮助?如果 ZK 也宕机了怎么办?
【问题讨论】:
标签: apache-kafka kafka-producer-api
我们正在使用 Kafka 测试生产者和消费者。几个问题:
当所有代理都关闭并且根本没有响应时会发生什么?
生产者是否需要不断 ping Kafka 代理才能知道它何时在线备份?或者有没有更优雅的方式让 Producer 应用程序知道?
Zookeeper 如何在这一切中提供帮助?如果 ZK 也宕机了怎么办?
【问题讨论】:
标签: apache-kafka kafka-producer-api
这是 Kafka Mirroring(MirrorMaker 工具)出现的一个场景。
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27846330
【讨论】:
如果一个或多个 broker 宕机,producer 会在一段时间内重试(根据设置)。在此期间,一个或多个消费者将无法读取任何内容,直到各自的代理启动。
但是,如果集群停机的时间超过了您的总重试时间,那么您可能需要找到一种方法来再次重新发送这些失败的消息。
【讨论】:
如果所有代理都完成了,那么您的集群当然不会收到任何东西。我假设Producer也会失败,因为不会收到来自zookeeper的heart bit。 我敢肯定,如果 Zookeeper 关闭,您的系统将不再工作。这是Kafka的弱点之一,他需要zookeeper来工作。
【讨论】: