1、安装zookeeper
docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper
-
-v /etc/localtime:/etc/localtime
容器时间同步虚拟机的时间
2、安装kafka
docker run -d --name kafka -p 9092:9092 -v /etc/hosts:/etc/hosts -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.7:5000 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.19:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
-
-name kafka
指定容器的名称为kafka
,可以任意起 -
192.168.1.7:5000
是zookeeper的ip和端口 -
192.168.1.19:9092
是启动kafka所在机器的ip和端口 -
-v /etc/hosts:/etc/hosts
宿主机hosts映射到容器,因为kafka和zookeeper不在同一个机器,需要配置hosts才能访问 -
KAFKA_BROKER_ID
在kafka集群中,每个kafka都有一个BROKER_ID来区分自己 -
KAFKA_ZOOKEEPER_CONNECT
的ip和端口 -
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.19:9092
把kafka的地址端口注册给zookeeper -
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
配置kafka的监听端口
3、测试kafka
3.1、创建topic
- 进入容器
docker exec -it kafka /bin/sh
,kafka
第二步中的容器名称 - 查找kafka所在路径
# find / -name kafka-topics.sh
/opt/kafka_2.13-2.6.0/bin/kafka-topics.sh
- 进入kafka所在路径
cd /opt/kafka_2.13-2.6.0/bin/
,创建名称为mytopic
的topic
./kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 2 --topic mytopic
3.2、发送消息
./kafka-console-producer.sh --broker-list localhost:9092 --topic mytopic
3.3、消费消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytopic --group lihuacai
网友评论