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

Docker Compose 配置文件:

version: '3.5'
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