服务器部署kafka时,本地项目连接服务器kafka报错:

kafka.common.KafkaException: Socket server failed to bind to xx:9092: Cannot assign requested address

解决:修改server.properties配置文件

在配置文件里添加这两项:

listeners=PLAINTEXT://xx.xx.xx.xx:9092
advertised.listeners=PLAINTEXT://xx.xx.xx.xx:9092
该情况下的虚拟机对外ip[暴露的ip]和真实ip[ifconfig显示的ip]可能只是映射关系,用户访问对外ip时,OpenStack会转发到对应的真实ip实现访问。
但此时如果 Kafka server.properties配置中的listeners=PLAINTEXT://xx.xx.xx.xx:9092中的ip配置为[对外ip]的时候无法启动,因为socket无法绑定监听,报如下错误
解决方法也很简单,listeners=PLAINTEXT://10.20.30.153:9092中的ip改为真实ip[ifconfig中显示的ip]即可,其他使用时正常使用对外ip即可,跟真实ip就没有关系了。
例:假如服务器对外访问的ip为123.44.55.66 内网地址为10.20.30.153

listeners=PLAINTEXT://10.20.30.153:9092
advertised.listeners=PLAINTEXT://123.44.55.66:9092
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐