mac系统通过docker搭建kafka环境

背景

本地开发任务需要启动个 kafka 环境, 模拟测试

环境

  1. MacOS
  2. Docker Desktop Version 4.6.1
  3. HOST_IP=宿主机网络IP | 个别情况可以使用 host.docker.internal
  4. KAFKA_TOPIC=xxxxxxx
  5. KAFKA_GROUP=xxxxxxx

安装步骤

  1. 启动 zookeeper

    1
    kafka docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
  2. 启动 kafka

    1
    2
    3
    4
    5
    6
    docker run -d --name kafka --link zookeeper -p 9092:9092 \
    -e KAFKA_BROKER_ID=0 \
    -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
    -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://${HOST_IP}:9092 \
    -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
    -t wurstmeister/kafka
  3. 创建 topic

    1
    2
    3
    4
    5
    docker run --rm wurstmeister/kafka kafka-topics.sh --create \
    --zookeeper ${HOST_IP}:2181 \
    --partitions 1 \
    --replication-factor 1 \
    --topic ${KAFKA_TOPIC}
  4. 创建 consumer

    1
    2
    3
    4
    5
    docker run --rm wurstmeister/kafka kafka-console-consumer.sh \
    --bootstrap-server ${HOST_IP}:9092 \
    --topic ${KAFKA_TOPIC} \
    --group ${KAFKA_GROUP} \
    --from-beginning
    1
    2
    3
    4
    5
    6
    docker run --rm wurstmeister/kafka kafka-console-consumer.sh \
    --bootstrap-server ${HOST_IP}:9092 \
    --topic ${KAFKA_TOPIC} \
    --offset earliest \
    --max-messages 10 \
    --partition 0
  5. 创建 producer

    1
    2
    3
    docker run --rm wurstmeister/kafka kafka-console-producer.sh \
    --bootstrap-server ${HOST_IP}:9092 \
    --topic ${KAFKA_TOPIC}
  6. 查看 group 状态

    1
    2
    3
    4
    docker run --rm  wurstmeister/kafka kafka-consumer-groups.sh \
    --describe \
    --bootstrap-server ${HOST_IP}:9092 \
    --group ${KAFKA_GROUP}