最近研究Docker使用过程中,恰好遇上另一个需求要搭建一个kafka服务器。于是就像尝试把kafka打成docker容器。
配置成功在容器内部用生产者和消费者shell脚本试了一下,发现功能是正常的,容器外使用java端和使用shell脚本去调用一直网络连接不同。当时觉得很奇怪
端口映射 -p 2181:2181 -p 9092 9092都有映射,而且telnet也是可以通。
网上搜了一下问题,只找到一条一样提问并没有提及问题解决方案。很多文章都是关于用第三方的kafka镜像做的容器。
尝试了几种方案后,想到估计跟zookeeper有关。由于对kafka,zookeeper,docker容器原理并不了解,排查问题就变得更难了。
用zk 之类看了一下注册信息,发现了问题
bin/zookeeper-shell.sh localhost:2181 <<< "get /brokers/ids/0"
发现了 PLAINTEXT 里面注册的域名很诡异。发现这个是docker容器的id!!
于是在宿主机把这个id加了个host 对应127.0.0.1 问题就解决了。
参考相关文章,这个注册地址是可以自定的。接下去打算试验一下。
参考链接资料:
kafka安装攻略 http://kafka.apache.org/quickstart
<http://kafka.apache.org/quickstart>
相关解决:https://blog.csdn.net/hutonm/article/details/78624409
<https://blog.csdn.net/hutonm/article/details/78624409>
热门工具 换一换