kafka

新版卡夫卡不需要zookeeper
- kafka容器配置 bitnami
version: "3"
services:
kafka:
image: bitnami/kafka:latest
ports:
- 9092:9092
environment:
- KAFKA_CFG_NODE_ID=0
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
kafka关键配置如下
process.roles=broker,controller
node.id=0
controller.quorum.bootstrap.servers=localhost:9093
listeners=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
advertised.listeners=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093
controller.listener.names=CONTROLLER
其中advertised.listeners对应的环境变量是KAFKA_CFG_ADVERTISED_LISTENERS 这个是kafuka对外的地址
kafka-ui
kafka没有自己的可视化界面,常见的ui有kafka-ui和efak 本文只介绍kafka-ui kafka-ui
配置如下:
services:
kafka-ui:
container_name: kafka-ui
image: provectuslabs/kafka-ui:latest
ports:
- 8080:8080
environment:
DYNAMIC_CONFIG_ENABLED: 'true'
volumes:
- ~/kui/config.yml:/etc/kafkaui/dynamic_config.yaml
综合配置
networks:
kafka-net:
services:
kafka:
image: bitnami/kafka:latest
container_name: kafka
networks:
- kafka-net
ports:
- 9092:9092
environment:
- KAFKA_CFG_NODE_ID=0
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://10.1.20.28:9092
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
volumes:
- ./kafka-data:/bitnami/kafka
kafka-ui:
image: provectuslabs/kafka-ui:latest
container_name: kafka-ui
depends_on:
- kafka
networks:
- kafka-net
ports:
- "8080:8080"
environment:
- KAFKA_CLUSTERS_0_NAME=local
- KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092
kafka-data 需要提前创建并设置权限
mkdir kafka-data
sudo chown -R 1001:1001 ./kafka-data
KAFKA_CFG_ADVERTISED_LISTENERS 如果需要其他服务器访问,需要设置为公开的ip或者域名
评论 (0)