我注意到,当向kafka(生产者)发送消息时,示例显示连接到端口9092——直接向代理写入。使用时,示例显示连接到端口2181,可能是zookeeper。
后者是有意义的——我想读一下“集群”,让zookeeper找出客户机应该与哪个代理通信,并管理诸如知道集群中谁是活的/死的之类的事情。
为什么发布/写入的工作方式不一样,即写入“集群”(通过zookeeper)?
我是否正确地理解了这一点,对于生产,我绕过了zookeeper(集群知识),并且必须知道生产节点(并且大概知道如果一个失败了该怎么做)?
1条答案
按热度按时间ecr0jaav1#
kafka的“高级使用者”使用zookeeper跟踪使用者组中的每个成员正在使用的分区,有时还跟踪在哪个分区中读取的偏移量。既然需要访问zookeeper,我们不妨用它来找出经纪人在哪里。。。
在新的消费者(即将在下一个版本中发布)中,不再需要zookeeper,消费者直接连接到代理,就像生产商目前所做的那样。