说明
因为目前SpringBoot只支持到2.8.1,所以kafka集群以2.8.1版本搭建,且kafka3.0.0已开始弃用Java8…
1. 清除160机器的历史数据
1.1 删除日志
rm -rf /tmp/kafka-logs
rm -rf /usr/local/src/kafka_2.13-3.0.0/
ls
1.2 进入Zookeeper客户端,删除掉历史的brokers
deleteall /brokers
2. 依次把压缩包上传到161,162,并解压
cd /usr/local/src/
tar -zxvf kafka_2.13-2.8.1.tgz
rm -rf kafka_2.13-2.8.1.tgz
3. 修改配置,以160机器为例
vi kafka_2.13-2.8.1/config/server.properties
i
官方文档 3.1 中列举了的3个重要参数 : broker.id, log.dirs, zookeeper.connect
官方文档 6.5 给出了一个生产环境的示例配置,官方建议手动创建topic
第 21 行 broker编号,每个服务不一样,160配成0,161配成1,162配成2
broker.id=0
第 31 行 服务IP和端口,格式参照官方 : listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://192.168.109.160:9092
PLAINTEXT可以替换为下面几个(后续再研究具体安全协议),官方文档截图如下
可选操作 第 60 行 消息日志文件位置,
log.dirs=/tmp/kafka-logs
第 65 行 每个Topic的partition数量,我暂设4个(官方示例是8)
num.partitions=4
第 74,75,76 行 备份数量
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=2
第 123 行 连接到Zookeeper集群的地址,此处配置3台机器一致
zookeeper.connect=192.168.109.160:2181,192.168.109.161:2181,192.168.109.162:2181
文末追加内容,138行到141行
按理来说,不应该自动创建主题,但有些公司应该都是自动创建(大公司不知道),我这里自动创建
default.replication.factor=3
# auto.create.topics.enable=false
min.insync.replicas=2
queued.max.requests=500
Esc
:wq
开放9092端口
firewall-cmd --query-port=9092/tcp
firewall-cmd --zone=public --add-port=9092/tcp --permanent
firewall-cmd --reload
4. 编写启动脚本
cd ~
vi kafka-start.sh
i
脚本内容
cd /usr/local/src/kafka_2.13-2.8.1/bin/
kafka-server-start.sh ../config/server.properties &
Esc
:wq
sudo chmod -R 777 kafka-start.sh
5. 分别在3台机器上启动Kafka,160机器只多一个Nacos服务
./kafka-start.sh
Enter
jps -l