拉取镜像
docker pull zookeeper
docker pull bitnami/kafka
启动zookeeper
docker run -d --name zookeeper -p 2181:2181 zookeeper
启动kafka
方式1:
docker run -d --name kafka -p 9092:9092
-e KAFKA_BROKER_ID=-0
-e KAFKA_ZOOKEEPER_CONNECT=192.168.0.101:2181
-e ALLOW_PLAINTEXT_LISTENER=yes
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
-e KAFKA_LISTENERS=PLAINTEXT://localhost:9092 -t bitnami/kafka
方式2:
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 --link zookeeper -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e KAFKA_LISTENERS=PLAINTEXT://localhost:9092 -t bitnami/kafka
区别:方式1使用本地ip连接zookeeper,需要打开防火墙
方式2使用link连接docker中的zookeeper,更方便
-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=192.168.11.129:2181 kafka 配置zookeeper管理kafka的路径,192.168.11.129是本地的地址根据自己本地地址修改
-e ALLOW_PLAINTEXT_LISTENER=yes 允许使用PLAINTEXT侦听器
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 把kafka的地址端口注册给zookeeper
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
测试:
连接kafka
docker exec -it kafka bash
进入/opt/bitnami/kafka/bin文件
发送消息:
./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test1
接收消息:
./kafka-console-consumer.sh --topic test1 --bootstrap-server localhost:9092 --from-beginning