所以我的问题是:如果我有一个运行Kafka(和zookeeper(的服务器,而另一台机器只消费消息,那么消费者机器也需要运行zookeeper吗?还是服务器会照顾所有事情?
No.
卡夫卡中动物园管理员的角色是:
- 代理注册:(群集成员身份(具有检测信号机制,使列表保持最新
- 存储主题配置:存在哪些主题,每个主题有多少个分区 有,副本在哪里,谁是首选领导者,ISR 列表 分区
- 选择控制器:控制器是代理之一,负责维护所有分区的领导者/追随者关系。
所以只有卡夫卡经纪人才需要动物园管理员。没有必要在生产者或消费者方面使用Zookeper。
消费者不需要动物园管理员
你没有提到哪个版本的Kafka或你正在使用的客户端。
使用 0.8 的 Kafka 消费者将他们的偏移量存储在 Zookeeper 中,因此他们需要这样做。但是,不,您不会在同一台服务器上运行Zookeeper和消费者
从 0.9 及更高版本开始,客户端与需要它是分开的(除非您想自行管理与 Zookeeper 的外部连接以存储数据(