1、编写 docker-compose.yaml 配置文件
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
container_name: kafka
expose:
- "9999"
ports:
- "9092:9092"
- "9999:9999"
environment:
KAFKA_ADVERTISED_HOST_NAME: 172.16.0.252
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_BROKER_ID: 0
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://172.16.0.252:9092
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_HEAP_OPTS: "-Xmx256M -Xms128M"
KAFKA_LOG_DIRS: "/kafka/logs"
KAFKA_AUTO_CREATE_TOPICS_ENABLE: true
KAFKA_DELETE_TOPIC_ENABLE: true
JMX_PORT: 9999 #启用远程JMX 监控面板用
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /data/kafka/logs:/kafka/logs
环境变量说明:
# client 要访问的 broker 地址
KAFKA_ADVERTISED_HOST_NAME: 172.16.0.252
# 通过端口连接 zookeeper
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
# 每个容器就是一个 broker,设置其对应的 ID
KAFKA_BROKER_ID: 0
# 外部网络只能获取到容器名称,在内外网络隔离情况下
# 通过名称是无法成功访问 kafka 的
# 因此需要通过绑定这个监听器能够让外部获取到的是 IP
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://172.16.0.252:9092
# kafka 监听器,告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务。
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
# Kafka默认使用-Xmx1G -Xms1G的JVM内存配置,由于服务器小,调整下启动配置
# 这个看自己的现状做调整,如果资源充足,可以不用配置这个
KAFKA_HEAP_OPTS: "-Xmx256M -Xms128M"
# 设置 kafka 日志位置
KAFKA_LOG_DIRS: "/kafka/logs"
# kafka 自动创建 topic,对于生成者与消费者连接的 TOPIC 不存在自动创建
KAFKA_AUTO_CREATE_TOPICS_ENABLE: true
# kafka 开启删除 topic,开了自动创建,删除的也要开,否则删除后还会自动创建
KAFKA_DELETE_TOPIC_ENABLE: true
2、管理面板安装
下载镜像:
docker pull provectuslabs/kafka-ui:latest
运行容器
docker run --name=kafka-ui -d \
-e KAFKA_CLUSTERS_0_NAME=local-kafka \
-e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=172.16.0.252:9092 -p 8888:8080 \
provectuslabs/kafka-ui:latest
作者:admin 创建时间:2023-03-05 18:04
最后编辑:admin 更新时间:2023-03-05 18:15
最后编辑:admin 更新时间:2023-03-05 18:15