kafka.yml

2022-11-23

kafka.yml 是 kafka 的 docker-compose 配置文件,用于启动 kafka 和 kafka-manager。

cp-kafka

version: '3.8'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
container_name: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- "2181:2181"
kafka:
image: confluentinc/cp-kafka:latest
container_name: kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.1.100:9092 # 本机 IP
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_AUTO_CREATE_TOPICS_ENABLE: true
kafka-ui:
image: provectuslabs/kafka-ui:latest
container_name: kafka-ui
depends_on:
- kafka
ports:
- "8080:8080"
environment:
KAFKA_CLUSTERS_0_NAME: local
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092
KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181

kafka

  • kafka
    • host: 0.0.0.0:9092
    • topic: test
    • partition: 0
  • kafka Web 管理
    • 0.0.0.0:9000

[[Docker Compose]] 配置文件:

version: '3.8'
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
ports:
- "2181:2181"
restart: always
kafka:
image: wurstmeister/kafka
container_name: kafka # 容器名
volumes:
- /etc/localtime:/etc/localtime
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_BROKER_ID: 1 # 不能重复
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 # 副本数
KAFKA_CREATE_TOPICS: "test:1:1" # 话题:Partition:Replica (数量)
restart: always # 重启后自动运行
kafka-manager: # Web 管理界面
image: sheepkiller/kafka-manager
container_name: kafka-manager
ports:
- "9000:9000"
environment:
ZK_HOSTS: 0.0.0.0:2181 # zookeeper 地址
restart: always
  • 进入 kafka 容器: docker exec -it kafka /bin/bash
  • 查看话题: kafka-topics.sh --list --zookeeper zookeeper:2181
  • 生产消息: kafka-console-producer.sh --broker-list kafka:9092 --topic=test
  • 消费消息: kafka-console-consumer.sh --bootstrap-server kafka:9092 --from-beginning --topic test