***关于Kafka(单机版)的下载、安装、配置、启动、测试等,请参考另外一篇文章:***CentOS安装Kafkashell
搭建集群只需在此基础上增长一些配置,本文也主要介绍这些和集群相关的配置,其余步骤再也不赘述bootstrap
假设节点数为3,ip分别为:10.20.1.52,10.20.1.53,10.20.1.54
vim
shell> cd /usr/local/kafka_2.12-2.2.0/ shell> vim config/server.properties 复制代码
编辑如下内容bash
############################# Server Basics ############################# # 3个节点此处分别设置为:broker.id=1,broker.id=2,broker.id=3 broker.id=1 ############################# Socket Server Settings ############################# # 3个节点此处分别设置为:PLAINTEXT://10.20.1.52:9092,PLAINTEXT://10.20.1.53:9092,PLAINTEXT://10.20.1.54:9092 listeners=PLAINTEXT://10.20.1.52:9092 # 3个节点此处分别设置为:PLAINTEXT://10.20.1.52:9092,PLAINTEXT://10.20.1.53:9092,PLAINTEXT://10.20.1.54:9092 advertised.listeners=PLAINTEXT://10.20.1.52:9092 ############################# Log Basics ############################# # 默认为/tmp/kafka-logs,可能会被删掉 log.dirs=/usr/local/kafka_2.12-2.2.0/logs ############################# Zookeeper ############################# # 末尾的/kafka可选,可是建议配置上,由于注册到ZooKeeper的除了kafka可能还有其余服务,增长根目录便于区分 zookeeper.connect=10.20.1.52:2181,10.20.1.53:2181,10.20.1.54:2181/kafka 复制代码
第一台机器配置好之后,直接复制到其余节点而后稍加修改便可(固然,若是你愿意,也能够按照相同的步骤再重复安装配置一次,注意修改server.properties
的内容便可)markdown
shell> scp -r /usr/local/kafka_2.12-2.2.0/ root@10.20.1.53:/usr/local/ shell> scp -r /usr/local/kafka_2.12-2.2.0/ root@10.20.1.54:/usr/local/ 复制代码
而后分别修改其余两台机器上的配置文件(server.properties)post
shell> cd /usr/local/kafka_2.12-2.2.0/ shell> vim config/server.properties 复制代码
# 10.20.1.53 broker.id=2 listeners=PLAINTEXT://10.20.1.53:9092 advertised.listeners=PLAINTEXT://10.20.1.53:9092 复制代码
# 10.20.1.54 broker.id=3 listeners=PLAINTEXT://10.20.1.54:9092 advertised.listeners=PLAINTEXT://10.20.1.54:9092 复制代码
分别启动3个Kafka节点测试
shell> cd /usr/local/kafka_2.12-2.2.0 shell> bin/kafka-server-start.sh -daemon config/server.properties 复制代码
若是使用kafka-manager,须要开启JMX_PORTspa
shell> JMX_PORT=9999 bin/kafka-server-start.sh -daemon config/server.properties
复制代码
shell> cd /usr/local/zookeeper-3.5.3-beta/ shell> bin/zkCli.sh [zk: localhost:2181(CONNECTED) 0] ls / [kafka, test, zookeeper] [zk: localhost:2181(CONNECTED) 1] ls /kafka [admin, brokers, cluster, config, consumers, controller, controller_epoch, isr_change_notification, latest_producer_id_block, log_dir_event_notification] [zk: localhost:2181(CONNECTED) 2] ls /kafka/brokers [ids, seqid, topics] [zk: localhost:2181(CONNECTED) 3] ls /kafka/brokers/ids [1, 2, 3] 复制代码
其中,1,2,3即为3台kafka节点server.properties
中配置的broker.id
的值code
第一台机器(10.20.1.52)建立topicorm
shell> bin/kafka-topics.sh --create --bootstrap-server 10.20.1.52:9092 --replication-factor 3 --partitions 1 --topic test # 查看集群的topic详情,也能够分别链接另外两台机器查看topic是否已同步 shell> bin/kafka-topics.sh --describe --bootstrap-server 10.20.1.52:9092 --topic test Topic:test PartitionCount:1 ReplicationFactor:3 Configs:segment.bytes=1073741824 Topic: test Partition: 0 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3 复制代码
第二台机器(10.20.1.53)发送消息
bin/kafka-console-producer.sh --broker-list 10.20.1.53:9092 --topic test >Hello >World 复制代码
第三台机器(10.20.1.54)消费消息
bin/kafka-console-consumer.sh --bootstrap-server 10.20.1.54:9092 --topic test --from-beginning Hello World 复制代码