Docker搭建Kafka测试集群
发布网友
发布时间:2022-12-02 15:36
我来回答
共1个回答
热心网友
时间:2023-11-10 18:44
zookeeper利用这个hostname在集群中的broker之间同步消息, 这里配置为kafka在docker虚拟网络中的IP。 使用你的宿主机的IP也可以,但是端口号要改成宿主机的端口号
Kafka在Docker container中的端口号
如果你需要在Docker虚拟网络之外使用Kafka集群,你需要把这两个参数配置成你宿主机的IP,端口号要改成Docker映射到宿主机的端口号(9092, 9093)。当往Kafka其中的一个broker发送消息时,Kafka集群从ZooKeeper取得Broker IP和端口号,然后同步数据,使用虚拟网络IP会导致发送和接收消息失败,因为宿主机无法访问Docker虚拟网络内的节点
例如我的宿主机IP是,192.168,0.2,
上述2个Kafka容器,9092端口号分别映射到宿主机的9092和9093端口。
环境变量配置如下
Kafka1配置为
KAFKA_ADVERTISED_HOST_NAME: 192.168.0.2
KAFKA_ADVERTISED_PORT: 9092
Kafka2配置为
KAFKA_ADVERTISED_HOST_NAME: 192.168.0.2
KAFKA_ADVERTISED_PORT: 9093