服务器部署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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐