docker-compose 安装带kafka-ui 的kafka集群
在日常的工作当中,kafka集群作为常用的中间件,其搭建过程略显繁琐,需要配置的文件颇多,为了方便各位初学者快速体验kafka的魅力,本文采取一键式安装kafka-3.3.1(不带zookeeper版本)的集群化安装。仅需将下面配置中的10.0.0.147 改为自己本机的ip即可
version:"3"services:#kafka可视化工具kafka-ui:container_name: kafka-ui
image: provectuslabs/kafka-ui:latest
ports:- 8989:8080depends_on:- kafka1
- kafka2
- kafka3
environment:- KAFKA_CLUSTERS_0_NAME=kafkaCluster
- KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=10.0.0.147:9192,10.0.0.147:9292,10.0.0.147:9392- DYNAMIC_CONFIG_ENABLED=true
networks:- mynetwork
# kafka集群kafka1:image:'bitnami/kafka:3.3.1'container_name: kafka1
user: root
ports:- 9192:9092- 9193:9093environment:### 通用配置# 允许使用kraft,即Kafka替代Zookeeper- KAFKA_ENABLE_KRAFT=yes
# kafka角色,做broker,也要做controller- KAFKA_CFG_PROCESS_ROLES=broker,controller
# 指定供外部使用的控制类请求信息- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
# 定义kafka服务端socket监听端口- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093# 定义安全协议- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
# 使用Kafka时的集群id,集群内的Kafka都要用这个id做初始化,生成一个UUID即可- KAFKA_KRAFT_CLUSTER_ID=LelM2dIFQkiUFvXCEcqRWA
# 集群地址- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:9093# 允许使用PLAINTEXT监听器,默认false,不建议在生产环境使用- ALLOW_PLAINTEXT_LISTENER=yes
# 设置broker最大内存,和初始内存- KAFKA_HEAP_OPTS=-Xmx512M -Xms256M
# 允许自动创建主题- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
# 消息保留时长(毫秒),保留7天- KAFKA_LOG_RETENTION_MS=604800000
### broker配置# 定义外网访问地址(宿主机ip地址和端口)- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://10.0.0.147:9192# broker.id,必须唯一- KAFKA_BROKER_ID=1
volumes:- /data/bitnami/kafka1:/bitnami/kafka
networks:- mynetwork
kafka2:image:'bitnami/kafka:3.3.1'container_name: kafka2
user: root
ports:- 9292:9092- 9293:9093environment:### 通用配置# 允许使用kraft,即Kafka替代Zookeeper- KAFKA_ENABLE_KRAFT=yes
# kafka角色,做broker,也要做controller- KAFKA_CFG_PROCESS_ROLES=broker,controller
# 指定供外部使用的控制类请求信息- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
# 定义kafka服务端socket监听端口- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093# 定义安全协议- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
# 使用Kafka时的集群id,集群内的Kafka都要用这个id做初始化,生成一个UUID即可- KAFKA_KRAFT_CLUSTER_ID=LelM2dIFQkiUFvXCEcqRWA
# 集群地址- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:9093# 允许使用PLAINTEXT监听器,默认false,不建议在生产环境使用- ALLOW_PLAINTEXT_LISTENER=yes
# 设置broker最大内存,和初始内存- KAFKA_HEAP_OPTS=-Xmx512M -Xms256M
# 允许自动创建主题- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
# 消息保留时长(毫秒),保留7天- KAFKA_LOG_RETENTION_MS=604800000
### broker配置# 定义外网访问地址(宿主机ip地址和端口)- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://10.0.0.147:9292# broker.id,必须唯一- KAFKA_BROKER_ID=2
volumes:- /data/bitnami/kafka2:/bitnami/kafka
networks:- mynetwork
kafka3:image:'bitnami/kafka:3.3.1'container_name: kafka3
user: root
ports:- 9392:9092- 9393:9093environment:### 通用配置# 允许使用kraft,即Kafka替代Zookeeper- KAFKA_ENABLE_KRAFT=yes
# kafka角色,做broker,也要做controller- KAFKA_CFG_PROCESS_ROLES=broker,controller
# 指定供外部使用的控制类请求信息- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
# 定义kafka服务端socket监听端口- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093# 定义安全协议- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
# 使用Kafka时的集群id,集群内的Kafka都要用这个id做初始化,生成一个UUID即可- KAFKA_KRAFT_CLUSTER_ID=LelM2dIFQkiUFvXCEcqRWA
# 集群地址- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:9093# 允许使用PLAINTEXT监听器,默认false,不建议在生产环境使用- ALLOW_PLAINTEXT_LISTENER=yes
# 设置broker最大内存,和初始内存- KAFKA_HEAP_OPTS=-Xmx512M -Xms256M
# 允许自动创建主题- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
# 消息保留时长(毫秒),保留7天- KAFKA_LOG_RETENTION_MS=604800000
### broker配置# 定义外网访问地址(宿主机ip地址和端口)- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://10.0.0.147:9392# broker.id,必须唯一- KAFKA_BROKER_ID=3
volumes:- /data/bitnami/kafka3:/bitnami/kafka
networks:- mynetwork
networks:mynetwork:driver: bridge
执行 命令安装即可
docker-compose up -d
版权归原作者 努力的gopher 所有, 如有侵权,请联系我们删除。