version"3.5"services zookeeper container_namezookeeper imagewurstmeister/zookeeper networkskafka-network expose2181 restartalways kafka1 depends_onzookeeper container_namekafka-1 imagewurstmeister/kafka networkskafka-network expose9092 ports"19092:9092" environment KAFKA_BROKER_ID0 KAFKA_NUM_PARTITIONS3 KAFKA_DEFAULT_REPLICATION_FACTOR2 KAFKA_ZOOKEEPER_CONNECTzookeeper2181 KAFKA_LISTENERSPLAINTEXT//0.0.0.09092 KAFKA_ADVERTISED_LISTENERSPLAINTEXT//192.168.56.119092 restartalways kafka2 depends_onzookeeper container_namekafka-2 imagewurstmeister/kafka networkskafka-network expose9092 ports"19093:9092" environment KAFKA_BROKER_ID1 KAFKA_NUM_PARTITIONS3 KAFKA_DEFAULT_REPLICATION_FACTOR2 KAFKA_ZOOKEEPER_CONNECTzookeeper2181 KAFKA_LISTENERSPLAINTEXT//0.0.0.09092 KAFKA_ADVERTISED_LISTENERSPLAINTEXT//192.168.56.119093 restartalways kafka3 depends_onzookeeper container_namekafka-3 imagewurstmeister/kafka networkskafka-network expose9092 ports"19094:9092" environment KAFKA_BROKER_ID2 KAFKA_NUM_PARTITIONS3 KAFKA_DEFAULT_REPLICATION_FACTOR2 KAFKA_ZOOKEEPER_CONNECTzookeeper2181 KAFKA_LISTENERSPLAINTEXT//0.0.0.09092 KAFKA_ADVERTISED_LISTENERSPLAINTEXT//192.168.56.119094 restartalwaysnetworks kafka-network driverbridge namekafka-network注意:
- 将
KAFKA_ADVERTISED_LISTENERS中的 IP 地址更改成宿主机的 IP 地址
x
docker compose up创建 topic
xxxxxxxxxxdocker exec -it kafka-1 kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic test-topic启动消费者
xxxxxxxxxxdocker exec -it kafka-2 kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test-topic --group test-group在另外一个窗口启动生产者
xxxxxxxxxxdocker exec -it kafka-3 kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 --topic test-topic然后观察前一个窗口的输出