为什么我们需要提及 Zookeeper 细节,即使 Apache Kafka 配置文件已经有了它?
Why do we need to mention Zookeeper details even though Apache Kafka configuration file already has it?
在过去的几个月里,我在 (Plain Vanilla) Hadoop 集群中使用 Apache Kafka,出于好奇,我问了这个问题。只是为了获得更多关于它的知识。
Kafka server.properties 文件已经有以下参数:
zookeeper.connect=localhost:2181
我正在使用以下命令启动 Kafka Server/Broker:
bin/kafka-server-start.sh config/server.properties
所以我假设 Kafka 会在我们启动 Kafka 服务器本身时自动推断出 Zookeeper 的详细信息。如果是这样,那么为什么我们在创建 Kafka 主题时需要明确提及 zookeeper 属性,下面给出了其语法供您参考:
bin/kafka-topics.sh --create --zookeeper localhost:2181
--replication-factor 1 --partitions 1 --topic test
根据 Kafka 文档,我们需要在启动 Kafka 服务器之前启动 zookeeper。所以我不认为Kafka可以通过注释掉Kafka的server.properties文件
中的zookeeper细节来启动
但至少我们可以使用 Kafka 创建主题并启动 Kafka Producer/Consumer 而无需在各自的命令中明确提及 zookeeper 吗?
Kafka 属性文件中的 zookeeper.connect
参数需要集群中的每个 Kafka 代理连接到 Zookeeper 集合体。
Zookeeper 将保留有关连接的代理和处理控制器选举的信息。除此之外,它还保留有关主题、配额和 ACL 等信息。
当您使用 kafka-topics.sh 工具时,主题创建首先发生在 Zookeeper 级别,然后由于它,信息被传播到 Kafka 代理,主题分区被创建并分配给它们(感谢选出的控制人)。由于新的 Admin Client API 提供了一些直接针对 Kafka 代理执行的管理操作,因此将来不需要与 Zookeeper 的连接。例如,有一个打开的 JIRA (https://issues.apache.org/jira/browse/KAFKA-5561),我正在努力让该工具使用 API 进行主题管理操作。
关于生产者和消费者……生产者不需要连接到Zookeeper,而只有"old"消费者(0.9.0版本之前)需要连接Zookeeper,因为它在那里保存了主题偏移;从 0.9.0 版本开始,"new" 消费者将主题偏移量保存在真实主题 (__consumer_offsets) 中。要使用它,您必须在命令行上使用 bootstrap-server
选项而不是 zookeeper
选项。
在过去的几个月里,我在 (Plain Vanilla) Hadoop 集群中使用 Apache Kafka,出于好奇,我问了这个问题。只是为了获得更多关于它的知识。
Kafka server.properties 文件已经有以下参数:
zookeeper.connect=localhost:2181
我正在使用以下命令启动 Kafka Server/Broker:
bin/kafka-server-start.sh config/server.properties
所以我假设 Kafka 会在我们启动 Kafka 服务器本身时自动推断出 Zookeeper 的详细信息。如果是这样,那么为什么我们在创建 Kafka 主题时需要明确提及 zookeeper 属性,下面给出了其语法供您参考:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
根据 Kafka 文档,我们需要在启动 Kafka 服务器之前启动 zookeeper。所以我不认为Kafka可以通过注释掉Kafka的server.properties文件
中的zookeeper细节来启动但至少我们可以使用 Kafka 创建主题并启动 Kafka Producer/Consumer 而无需在各自的命令中明确提及 zookeeper 吗?
Kafka 属性文件中的 zookeeper.connect
参数需要集群中的每个 Kafka 代理连接到 Zookeeper 集合体。
Zookeeper 将保留有关连接的代理和处理控制器选举的信息。除此之外,它还保留有关主题、配额和 ACL 等信息。
当您使用 kafka-topics.sh 工具时,主题创建首先发生在 Zookeeper 级别,然后由于它,信息被传播到 Kafka 代理,主题分区被创建并分配给它们(感谢选出的控制人)。由于新的 Admin Client API 提供了一些直接针对 Kafka 代理执行的管理操作,因此将来不需要与 Zookeeper 的连接。例如,有一个打开的 JIRA (https://issues.apache.org/jira/browse/KAFKA-5561),我正在努力让该工具使用 API 进行主题管理操作。
关于生产者和消费者……生产者不需要连接到Zookeeper,而只有"old"消费者(0.9.0版本之前)需要连接Zookeeper,因为它在那里保存了主题偏移;从 0.9.0 版本开始,"new" 消费者将主题偏移量保存在真实主题 (__consumer_offsets) 中。要使用它,您必须在命令行上使用 bootstrap-server
选项而不是 zookeeper
选项。