执行 docker search zookeeper 会查询出镜像库的列表,选择下载STARTS 最多的docker
执行 docker pull zookeeper 会把名字为“zookeeper” 的镜像拉下来bootstrap
Zookeeper 启动bash
docker run --name zookeeper --restart always -d -p 2181:2181 zookeeper工具
--name 启动容器名称为 zookeeper测试
--restart always docker 重启时,zookeeper容器 会自动重启spa
--d 后台线程启动线程
--p 左边为容器外宿主机端口右边为容器内部zookeeper启动端口3d
运行以后 能经过 docker ps 看到正在运行的容器rest
一样搜索kafka 镜像列表日志
执行 docker search kafka
一样选择STARTS最高的镜像
执行 docker pull wurstmeister/kafka
kafka 启动
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.123.52:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.123.52:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
连接的地址还有 监听的地址 必定要选宿主机地址,否则会启动失败
反例:KAFKA_ZOOKEEPER_CONNECT 配置了 localhost 而不是宿主机的ip地址
查看容器的相关日志
docker logs -f -t --tail 200 039a0ff239ef37394c25294b2584a55eb5cb2d644ffe667433532be9af1fcf51(容器id)
会看到 kafka 启动 链接不上zookeeper 致使kafka 启动失败
改为上面的启动信息以后正常启动 信息以下
docker exec -it kafka /bin/bash 进入kafka 容器内部
进入kafka bin目录 cd /opt/kafka_2.12-2.3.0/
启动消费者脚本,订阅 mykafka 主题
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafka --from-beginning
注解:
--from-beginning 从头开始消费
使用测试工具 发送数据
{"datas":[{"channel":"","metric":"temperature","producer":"ijinus","sn":"IJA0101-00002245","time":"1543207156000","value":"80"}],"ver":"1.0"}
能看到消费者订阅到 相关的信息