使用Docker启动kafka创建topic异常

林开心 发表于: 2019-08-27   最后更新时间: 2021-01-22 10:13:10   4,507 游览

使用Docker启动kafka创建topic异常

我自己打了kafka的docker镜像,启动后日志正常且zk中有对应节点,使用命令创建topic提示成功,但对应log文件夹没有test3-0 这个文件夹生成,我使用相同的配置文件和命令在本机进行试验是可以正常创建的。

启动:

docker run -d -p 9093:9092 -v /root/docker/kafka/kafkalogs/:/opt/kafka-logs: --name kafka kafka:latest

创建:

docker exec kafka kafka-topics.sh --replication-factor 1 --partitions 1 --create --topic test3 --zookeeper 192.168.40.207:2181/kafkadocker

以及下图中的语句

screenshot

ZK节点中存在topic:

screenshot

Dockerfile,最后脚本只是前台启动kafka:

screenshot

发表于 2019-08-27

补充一下,我用的zookeeper不是docker的,是本机启动的zookeeper服务

半兽人 -> 林开心 5年前

1、尝试下发送消息,看看是否成功
2、对应的文件夹没有,容器里面有确认过吗?

林开心 -> 半兽人 5年前

消息发送失败,没有对应的topic,容器内也没有
我后来试了一下,把配置文件的端口,和映射的端口设置成一样的,就可以正常运行,当我配置文件内是9093,宿主机使用9094映射9093的话就不能使用了。

半兽人 -> 林开心 5年前

kafka客户端是主动发现其他的集群的,也就是说,它发现的实际上还是原来的,而不是转换后的端口。

林开心 -> 半兽人 5年前

1:也就是说我不管映射什么端口,实际上他发现的还是配置文件里配置的那个端口,那么我要在一台上起多个的话,就需要配置9092/3/4这样的吗?
2:还有一个问题宿主机启动一个kafka占用9092,再启动一个容器也是9092端口映射宿主机9093,这样容器里的kafka可以正常启动,但是却没办法创建topic和生产消费。

对于连接端口的事情我还是有些不太明白。

半兽人 -> 林开心 5年前

1、是的
2、简单点,你的docker的端口和宿主机的端口都保持一致,容器里是9093,那就都9093。

端口和ip都有这个问题,就是你配置的转发规则什么的,客户端是不认的,它自己主动发现集群的列表,而这个列表是你配置文件中的。

林开心 -> 半兽人 5年前

懂了,谢谢

你的答案

查看kafka相关的其他问题或提一个您自己的问题