Kafka Broker-与Zookeeper相同吗?还是KafkaProducer是经纪人?

时间:2018-08-03 13:54:52

标签: apache-kafka apache-zookeeper messagebroker

有多个代码示例(其中一个是here),其中实现了KafkaProducer和KafkaConsumers并可单独启动。

我试图找到启动经纪人的代码?

我认为Zookeeper不是KafkaBroker,因为Zookeeper用于其他目的..管理集群状态。

在创建KafkaProducer时,我们传入

之类的属性
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, IKafkaConstants.KAFKA_BROKERS);

这是否意味着KafkaProducer会自行启动代理?

2 个答案:

答案 0 :(得分:2)

Zookeeper负责管理Kafka经纪人的协调和同步,它们是独立的组件。

生产者未启动代理。生产者和消费者是客户端组件,它们连接一个或多个Kafka经纪人,并在经纪人集群之间产生/消费数据。

通常通过运行kafka/bin/kafka-server-start.sh kafka/config/server.properties来启动Kafka代理,这将启动一个具有server.properties文件中定义的属性的Kafka代理。

答案 1 :(得分:2)

重要的是要先弄清楚概念:

Kafka经纪人 =一个kafka实例启动,我的意思是从(https://kafka.apache.org/downloads)开始下载应用程序

Zookeeper =在这种特定情况下,您实际上是集群的协调者,您可以使用zookeeper在kafka上启动多个实例并进行集群。

Kafka Producer =负责将消息发送到特定kafka主题的任何应用程序(实现kafka库),例如队列。

Kafka使用者 =负责获取和处理kafka集群消息的任何应用程序(实现kafka库)。

对于启动kafka,您首先设置系统环境(可选),然后执行以下命令:

----首先启动Zookeeper

nohup zookeeper-server-start.sh $ KAFKA_HOME / config / zookeeper.properties&

-----然后启动kafka

nohup kafka-server-start.sh $ KAFKA_HOME / config / server.properties&