我注意到在向kafka(生产者)发送消息时,示例显示连接到端口9092 - 直接写入代理。当使用示例时显示连接到端口2181,可能是zookeeper。
后者是有道理的 - 我想从“群集”中读取,让动物园管理员弄清楚客户应该与哪个经纪人沟通,并管理诸如知道群集中哪些人活着/死亡等事情。
为什么发布/写入不会以相同的方式工作,即写入“群集”(通过zookeeper)?
我是否正确地理解这一点,为了产生我绕过zookeeper(群集知识)并且必须知道生产者节点(并且可能想知道如果失败了该怎么做)?
答案 0 :(得分:1)
Kafka的“高级消费者”使用Zookeeper来跟踪消费者组中每个成员正在消费的分区,有时还跟踪在哪个分区中读取哪些偏移。由于需要访问Zookeeper,我们也可以用它来弄清楚经纪人在哪里......
在新的消费者中(即将在下一个版本中发布),不再需要Zookeeper,消费者可以直接连接到经纪人,就像生产者当前一样。