一 实验环境
2.1 安装jdk
可参考linux下下载安装jdk_雅冰石的专栏-CSDN博客
2.2 安装zookeeper集群
可参考https://blog.csdn.net/yabingshi_tech/article/details/110795927
2.3 安装kafka集群
kafka官网下载地址:Apache Kafka
在三台服务器上执行以下步骤:
2.3.1 解压
cd /opt
tar -xvf kafka_2.11-2.3.1.tgz
ln -s kafka_2.11-2.3.1 kafka
mkdir /opt/kafka/kafka-logs
2.3.2 修改配置文件
vi /opt/kafka/config/server.properties
添加:
broker.id=0
listeners=PLAINTEXT://192.168.144.205:9092
zookeeper.connect=192.168.144.205:2181,192.168.144.206:2181,192.168.144.246:2181
log.dirs=/opt/kafka/kafka-logs
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.partitions=3
num.recovery.threads.per.data.dir=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connection.timeout.ms=6000
message.max.bytes=126951500
default.replication.factor=3
/*
注意事项
- 修改第二,三台服务器的broker.id的值,分别改为1,2
- listeners=PLAINTEXT://192.168.144.205:9092中的ip是本服务器的ip,所以需要在第二,三台服务器上修改该ip值
- zookeeper.connect值为zookeeper的ip及端口号
- default.replication.factor必须显示设置,否则默认值为1,值为1的话,无法实现高可用。
*/
2.3.3 启动kafka
cd /opt/kafka
bin/kafka-server-start.sh -daemon config/server.properties
2.3.4 检查端口
netstat -nltp |grep 9092
2.3.5 测试
2.3.5.1 在其中一个节点上创建一个topic
[root@pc205 kafka]# bin/kafka-topics.sh --create --zookeeper 192.168.144.205:2181,192.168.144.206:2181,192.168.144.246:2181 --replication-factor 3 --partitions 3 --topic topicTest
Created topic topicTest.
#在其他节点上能查看到刚创建的topic
[root@pc205 kafka]# bin/kafka-topics.sh --list --zookeeper 192.168.144.205:2181,192.168.144.206:2181,192.168.144.246:2181
topicTest
/*
也可以指定bootstrap-server创建topic:
bin/kafka-topics.sh --create --bootstrap-server 192.168.144.247:9092 --replication-factor 3 --partitions 3 --topic topicTest3
#连接另一个节点也能看到新建的topic:
bin/kafka-topics.sh --list --bootstrap-server 192.168.144.253:9092
topicTest3
*/
2.3.5.2 在其中一个节点上启动消息生产者
bin/kafka-console-producer.sh --broker-list 192.168.144.205:9092,192.168.144.206:9092,192.168.144.246:9092 --topic topicTest
2.3.5.3 在其他节点上启动消息消费者
bin/kafka-console-consumer.sh -bootstrap-server 192.168.144.205:9092,192.168.144.206:9092,192.168.144.246:9092 --topic topicTest --from-beginning
可以看到数据同步过来了。
2.3.6 验证集群高可用
启动一个生产者进程,多个消费者进程。
关闭其中一台kafka,验证下是否能正常生产与消费消息。若不影响,方为正常。
最后再启动关闭的kafka。
--本篇文章主要参考自:linux kafka集群配置和测试图文详解_if(true){ I love it }-CSDN博客