- zk 容器
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
- Kafka 集群
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=10.231.96.33:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.231.96.33:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
docker run -d --name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=10.231.96.33:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.231.96.33:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafka
docker run -d --name kafka2 -p 9094:9094 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=10.231.96.33:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.231.96.33:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -t wurstmeister/kafka
需要改变的是:容器 name、端口、brokerId、以及 IP:
KAFKA_BROKER_ID=0
KAFKA_ZOOKEEPER_CONNECT=10.231.96.33:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.231.96.33:9092
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
192.168.0.102
是宿主机器的 IP,需要自己改变,可以通过 ifconfig en0
获得:
- 测试 Kafka 集群
# 进入 Kafka 容器
docker exec -ti kafka /bin/bash
# 创建 topic 这里 ip 要和上面对应
kafka-topics.sh --create --zookeeper 10.231.96.33:2181 --replication-factor 2 --partitions 2 --topic partopic
# 查看 topic 状态
kafka-topics.sh --describe --zookeeper 10.231.96.33:2181 --topic partopic
kafka-manger
GUI 管理集群:
docker run -itd --restart=always --name=kafka-manager -p 9000:9000 -e ZK_HOSTS="10.231.96.33:2181" kafkamanager/kafka-manager
填入 ZK 地址
不用在设备上配置这些环境了,因为现在这样还有问题:多个项目里依赖的 Zookeeper 不一样怎么办?要么用到的时候 docker 启动,但还是太麻烦!
在有了 DevContainer 之后,可以把这些东西都忘记了。