淘先锋技术网

首页 1 2 3 4 5 6 7

在使用java客户端连接kafka时,怎么都连接不上,防火墙端口也开放了,后面查资料得知需要将修改kafka安装目录下的config/server.properties文件:

# 允许外部端口连接
listeners=PLAINTEXT://192.168.38.22:9092 

但是这样在执行kafka生产者命令时又出现问题:Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.

kafka启动后会在zookeeper的/brokers/ids下注册监听协议,包括IP和端口号,客户端连接的时候,会取得这个IP和端口号。原理是因为listeners和advertised.listeners的区别,advertised.listeners才是真正暴露给外部使用的连接地址,会写入到zookeeper节点中的。于是再次进行修改,把IP配置到advertised.listeners中:

# 允许外部端口连接                                            
listeners=PLAINTEXT://192.168.38.22:9092  
# 外部代理地址                                                
advertised.listeners=PLAINTEXT://192.168.38.22:9092