zookeeper是作为一个数据管道存储kafka消息队列,上一篇已经解决怎样部署一个zookeeper集群,基于zookeeper集群基础上,本篇介绍怎样部署kafka集群。
mv kafka_2.13-2.4.0.tgz /usr/local
tar -zxvf kafka_2.11-2.4.0.tgz
mv kafka_2.11-2.4.0 kafka
配置kafka环境变量,首先打开profile文件
vim /etc/profile
#set kafka environment
PATH=${KAFKA_HOME}/bin:$PATH
保存文件后,让该环境变量生效
source /etc/profile
依次修改集群服务器如下配置
vim /usr/local/kafka/config/server.properties
broker.id=1 #服务id 如3台集群分别是1,2,3
listeners=PLAINTEXT://192.168.1.x1:9092
zookeeper.connect=192.168.1.x1:2181,192.168.1.x2:2181,192.168.1.x3:2181
#分别在每台机器上启动kafka服务
/usr/local/kafka/bin/kafka-server-start.sh -daemon config/server.properties
#任意一台kafka服务器上创建 kafa topic
/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.1.x:2181 --replication-factor 3 --partitions 1 --topic test-topic #x 表示实际IP
#查看topic是否创建成功
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper 192.168.1.x:2181 --topic test-topic
如果出现以下情况表示创建成功
Topic: test-topic PartitionCount: 1 ReplicationFactor: 3 Configs:
Topic: test-topic Partition: 0 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
备注: 没有在kafka目录下创建zookeeper ,指定myid
解决:
cd kafka_2.11-1.1.0
mkdir zookeeper
cd zookeeper
touch myid
echo 0 > myid
重新启动kafka就ok
./bin/kafka-console-producer.sh --broker-list 192.168.1.9:9092 --topic topic-test #运行生产者发送消息
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.9:9092 --topic topic-test #运行消费者接收消息。