Bootstrap 服务器与 kafka 中的动物园管理员?
Bootstrap server vs zookeeper in kafka?
为什么不推荐在 kafka-consumer 中使用 zookeeper,为什么建议改用 bootstrap 服务器?
bootstrap-服务器的优势是什么?
Kafka消费者需要将偏移量提交给kafka并从kafka中获取偏移量。由于kafka将offset存储从zookeeper转移到kafka brokers,kafka消费者不需要直接和zookeeper通信,所以新的kafka消费者不需要配置zookeeper
然而,kafka 消费者总是需要连接到 kafka 代理(集群)以将请求发送到服务器,bootstrap-服务器只是这个集群的一些代理,使用它,消费者可以找到所有经纪人。
在当前的kafka-consumer工具中使用--zookeeper或--bootstrap-server参数来区分使用旧消费者和新消费者。旧消费者需要 Zookeeper 连接,因为那里保存了偏移量。新消费者不再需要 Zookeeper,因为偏移量已保存到 Kafka 代理上的 __consumer_offset 个主题。今天不鼓励使用旧消费者,因此对于新应用程序,最好使用新实现。
- 在旧版本的 Kafka (0.9.0) 中,Kafka 用于在 Kafka 服务器上存储数据,并且所有偏移量相关信息(如(当前分区偏移量))都存储在 zookeeper 中。因此,对于 运行 的消费者来说,它需要数据和元数据。所以为了获取元数据,它必须调用 zookeeper。这就是它同时使用 zookeeper 和 Kafka 的原因。例如 Old Consumer Code
- 在新版本的 Kafka(即 0.10.0 及更高版本)中,它将所有主题元数据信息(总分区及其当前偏移量)存储在同一 Kafka 服务器上的
__consumer_offset
主题中。所以现在只有Kafka broker需要和zookeeper通信,
consumer 从 Kafka broker 本身获取所有数据和元数据,因此它现在不再需要与 zookeeper 通信。
当前架构的优势:当数据和元数据位于同一位置时,它们更容易管理。
为什么不推荐在 kafka-consumer 中使用 zookeeper,为什么建议改用 bootstrap 服务器? bootstrap-服务器的优势是什么?
Kafka消费者需要将偏移量提交给kafka并从kafka中获取偏移量。由于kafka将offset存储从zookeeper转移到kafka brokers,kafka消费者不需要直接和zookeeper通信,所以新的kafka消费者不需要配置zookeeper
然而,kafka 消费者总是需要连接到 kafka 代理(集群)以将请求发送到服务器,bootstrap-服务器只是这个集群的一些代理,使用它,消费者可以找到所有经纪人。
在当前的kafka-consumer工具中使用--zookeeper或--bootstrap-server参数来区分使用旧消费者和新消费者。旧消费者需要 Zookeeper 连接,因为那里保存了偏移量。新消费者不再需要 Zookeeper,因为偏移量已保存到 Kafka 代理上的 __consumer_offset 个主题。今天不鼓励使用旧消费者,因此对于新应用程序,最好使用新实现。
- 在旧版本的 Kafka (0.9.0) 中,Kafka 用于在 Kafka 服务器上存储数据,并且所有偏移量相关信息(如(当前分区偏移量))都存储在 zookeeper 中。因此,对于 运行 的消费者来说,它需要数据和元数据。所以为了获取元数据,它必须调用 zookeeper。这就是它同时使用 zookeeper 和 Kafka 的原因。例如 Old Consumer Code
- 在新版本的 Kafka(即 0.10.0 及更高版本)中,它将所有主题元数据信息(总分区及其当前偏移量)存储在同一 Kafka 服务器上的
__consumer_offset
主题中。所以现在只有Kafka broker需要和zookeeper通信, consumer 从 Kafka broker 本身获取所有数据和元数据,因此它现在不再需要与 zookeeper 通信。
当前架构的优势:当数据和元数据位于同一位置时,它们更容易管理。