kafka集群部署
虽然kafka集群部署的文章网络的到处都是,但是还是想把自己亲自操作的过程记录一下,同时也可以记录一下遇到的问题,避免以后部署的时候再遇到。
一、安装
1、下载,地址:
https://www.apache.org/dyn/closer.cgi?path=/kafka/2.3.0/kafka_2.12-2.3.0.tgz
2、解压
1 tar xzvf kafka_2.12.3.0.tgz 2 cd kafka_2.12.3.0
二、启动服务
kafka依赖zookeeper,如果本身没有已经启动的zookeeper集群的话,kafka的安装包中已经内置了一个脚本来启动一个单节点的zookeeper实例,我的机器没有zookeeper,所以需要先启动一个zookeeper实例,启动命令:
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
然后启动kafka,启动命令:
bin/kafka-server-start.sh -daemon config/server.properties
执行过命令后发现启动失败了,看日志发现没有Java命令,才想起来自己的电脑没有安装Java,于是安装下Java,centos的系统,安装命令:
yum install java-1.8.0-openjdk
三、验证服务
执行常见命令验证服务启动是否正常。
1、创建topic
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
2、查看topic
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
3、生产消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
4、消费消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
四、部署集群
上一步中配置的一个单节点的kafka,这在开发测试阶段当然没有问题,但是在正式环境中,还是应该部署集群模式来保证整个服务的高可用。
拷贝server.propertise生成两个新的配置文件
1 cp config/server.properties config/server-1.properties 2 cp config/server.properties config/server-2.properties
并修改其中的如下几行:
1 config/server-1.properties: 2 broker.id=1 3 listeners=PLAINTEXT://:9093 4 log.dirs=/tmp/kafka-logs-1 5 6 config/server-2.properties: 7 broker.id=2 8 listeners=PLAINTEXT://:9094 9 log.dirs=/tmp/kafka-logs-2
启动server1和server2:
1 bin/kafka-server-start.sh config/server-1.properties & 2 bin/kafka-server-start.sh config/server-2.properties &
测试集群,这里我们再创建一个副本个数为3的topic:
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 1 --topic my-replicated-topic
查看topic的信息:
bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-replicated-topic