症状:Producer连不上,提示没有可用Node。

解决:在安装kafka的目录中配置server.properties

1、listeners=PLAINTEXT://:9092或listeners=PLAINTEXT://内网ip:9092  注:千万不能写localhost,否则虽然在本地可以通信,一旦外网通过JavaAPI访问就会出错。当然也不能写公网ip,否则报can‘t bind错误。

2、advertised.listeners=PLAINTEXT://公网ip:9092

3、hostname advertised.hostname不用配置。

另:server中关于socket listen的原注释:

# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.

默认配置应该是主机名,大概和内网ip等价,详细还需研究。

05-11 20:11