目录
新版Kafka直接基于Kraft,无需再使用zookeeper。
通过Docker进行部署,ADVERTISED_LISTENERS
必须设置外部连接Kafka broker的地址,
本机部署时设置为localhost
,服务器部署时设置为服务器宿主机ip地址
。
注意
部署前需修改启动脚本中的KAFKA_ADVERTISED_LISTENERS
的IP为实际部署主机的外网可访问IP:
bash
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://xx.xx.xx.xx:9092 \
启动Kafka容器
bash
#! /bin/bash
# 创建网络
docker network create --driver bridge kafka_network
# 启动Kafka
docker run -it -d \
-p 9092:9092 \
--name kafka \
--network kafka_network \
--restart always \
-e KAFKA_NODE_ID=1 \
-e KAFKA_PROCESS_ROLES=broker,controller \
-e KAFKA_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://xx.xx.xx.xx:9092 \
-e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT \
-e KAFKA_CONTROLLER_QUORUM_VOTERS=1@localhost:9093 \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_MIN_ISR=1 \
-e KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0 \
-e KAFKA_NUM_PARTITIONS=3 \
apache/kafka:3.9.0
删除Kafka容器
bash
docker rm -f kafka
参考:
https://blog.csdn.net/weixin_62799021/article/details/143242822