使用多个品牌的云主机布置kafka集群时的注意事项

在使用阿里云+腾讯云+华为云建立跨局域网的三个kafka组成的集群时,端口已经开放的情况下,出现producer无法访问kafka的情况

原因是kafka-server的配置文件config/server.properties里的advertised.listeners没有配置,或者配置了云主机的内网IP

正确的做法是advertised.listeners配置为该云主机的外网IP

扩展:
在config/server.properties中
listeners参数:kafka-server的监听消息到来的端口,默认值是java.net.InetAddress.getCanonicalHostName()
advertised.listeners参数:用于kafka-server告诉其他consumer和producer如何找到kafka自己的ip和端口,默认值是listeners参数

云主机内部看不到自己的外网ip,但可以知道自己的内网ip。使用ifconfig命令查看eth0可知eth0为内网ip。而外网数据通常经过[外网ip-云品牌商的网关-内网ip]这三个过程。

consul也有相关一个类似advertise的参数

你可能感兴趣的:(kafka)