我正在使用kafka控制台工具,并试图设置它,如果至少有一个kafka服务器实例仍然在线,仍然可以发送和接收消息,同时使用复制。
配置:动物园管理员(本地宿主:2181),kafka1 (本地宿主:9092),kafka2 (本地宿主:9093),producer1 (本地宿主:9092),producer2(本地宿主:9093),consumer1 (localhost:9092),consumer2 (localhost:9093)
主题: partitions=6,replication=2
如果kafka1服务器处于联机状态,则无论kafka2状态如何,发送和接收消息都是正常的。但是,如果kafka1离线而kafka2在线,发送的消息就会被交换--抵消增加,但在kafka1恢复在线之前,consumer1和consumer2中的任何一个都无法读取。
在我看来,消息需要复制到kafka1才能交付。
所以,我的问题是:
1)为什么两个消费者都需要kafka1在线才能接收消息?
2) producer1是否将自身配置为在kafka2脱机时写入kafka1?
3)如果2)是真的,为什么consumer1不将自己配置为从kafka2读取?
4)当kafka1离线时,为什么使用者2不接收消息?
(谢谢你的答复:)
发布于 2017-02-28 20:56:59
我想我想明白了。我让制作人只设置了一个kafka实例,所以如果它离线,消息就被缓存在某个地方。当它重新上线后,信息就被正常地传送了。
https://stackoverflow.com/questions/42506720
复制相似问题