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