所以我按照主要文档尝试了kafka quickstart。根据说明获得了多集群示例所有设置和测试,并且它可以工作。例如,关闭一个经纪人,生产者和消费者仍然可以发送和接收。
但是,根据示例,我们设置了3个经纪人,我们将经纪人2(经纪人ID = 1)调低。现在,如果我再次提起所有经纪人,但是我将经纪商1(经纪人ID = 0)调低,那么消费者就会挂起。这只发生在代理1(id = 0),代理2或3不会发生。我在Windows 7上测试它。
经纪人1在这里有什么特别之处吗?查看配置,除了id,端口号和日志文件位置之外,它们在所有3个代理之间完全相同。
我认为这只是提供的控制台消费者的一个问题,它不会占用代理列表,所以我根据他们的文档使用默认设置编写了一个简单的java消费者,但指定了&中的代理列表#34; bootstrap.servers"财产,但没有骰子,仍然会遇到同样的问题。
当我启动经纪人1(经纪人ID = 0)时,消费者将恢复工作。对于消费者而言,这不是一种高度可用/容错的行为......有关如何设置HA /容错消费者的任何帮助?
生产者似乎没有问题。
答案 0 :(得分:1)
如果您遵循快速启动,则创建的主题应该只有一个分区,其中一个副本默认托管在第一个代理中,即代理1.这是消费者在您关闭时失败的原因这个经纪人。
尝试创建具有多个副本的主题(在创建主题时指定--replication-factor)并重新运行测试以查看它是否带来更高的可用性。