极速部署kafka3.2.0集群
- 准备工作:准备三台服务器
- 部署Zookeeper集群
- 部署kafka集群
- 创建Topic
- 开启JMX_PORT
- kafka集群管理工具使用的 KakfaStreaming
准备工作:准备三台服务器
服务器地址 | 缩写 |
---|---|
192.168.0.200 | 200 |
192.168.0.201 | 201 |
192.168.0.202 | 202 |
一、完成服务器之间的免密登录
二、完成每台服务器的docker、docker-compose环境部署(版本保持一致)
注意:先完成服务器之前的免密登录,如未设置,则无需继续部署!
部署Zookeeper集群
一、部署服务器zookeeper
三台服务器上分别创建以下 docker-compose.yml
version: '3.1'
services:
zk1:
image: 'zookeeper:3.7'
restart: always
hostname: zoo200
container_name: zk200
network_mode: host
ports:
- 2181:2181
- 2888:2888
- 3888:3888
environment:
ZOO_MY_ID: 201
ZOO_SERVERS: server.200=192.168.0.200:2888:3888;2181 server.201=192.168.0.201:2888:3888;2181 server.202=192.168.0.202:2888:3888;2181
注意点:
1、hostname 自定义
2、ZOO_MY_ID 自定义
3、ZOO_SERVERS 分别为三台服务器的地址
4、server.200、server.201、server.202 对应的是三台服务器 自定义的“ZOO_MY_ID”
部署kafka集群
三台服务器分别创建以下 docker-compose.yml
version: '3'
services:
k1:
image: 'bitnami/kafka:3.2.0'
restart: always
container_name: kafka200
network_mode: host
user: root
ports:
- "9092:9092"
- "9999:9999"
environment:
- KAFKA_CFG_ZOOKEEPER_CONNECT=192.168.0.200:2181,192.168.0.201:2181,192.168.0.202:2181
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_BROKER_ID=200
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.200:9092
- KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
- KAFKA_CFG_NUM_PARTITIONS=3
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- KAFKA_HEAP_OPTS=-Xmx512M -Xms256M
- JMX_PORT=9999
volumes:
- /middleware/Kafka/kraft:/bitnami/kafka:rw
注意点:
1、ports 端口映射 要与“environment”的端口保持一致
2、JMX_PORT 端口 推荐使用 9999
3、JMX_PORT为kafka的数据监控工具需要使用的服务端口,默认关闭,建议开启,下面会详细介绍
4、host 为系统默认network,也自定义network
创建Topic
进入kafka容器
docker exec -it kafka200 bash
kafka-topics.sh --create --bootstrap-server 192.168.0.200:9092 --replication-factor 1 --partitions 3 --topic ODSDataSync
检查topic是否创建成功
kafka-topics.sh --bootstrap-server 192.168.0.200:9092 --describe --topic ODSDataSync
开启JMX_PORT
注意点:
1、docker-compose.yml 中需要开启 9999 端口
2、需要进入kafka容器修改 kafka-server-start.sh
3、需要进入kafka容器修改 kafka-run-class.sh
以上docker-compose内容与上面的一致,只是为了重点强调端口开发位置
kafka-server-start.sh 中 倒数第二行 添加 JMX_PORT=“9999”
kafka-run-class.sh 大概在 209行,找到 KAFKA_JMX_OPTS
KAFKA_JMX_OPTS= 进行修改
KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.rmi.port=9999 -Djava.rmi.server.hostname=192.168.0.200 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false "
根据自己服务器的地址进行修改
kafka集群管理工具使用的 KakfaStreaming