SpringBoot连接CentOS7部署的Kafka报错:No resolvable bootstrap urls given
解决Kafka连接报错:No resolvable bootstrap urls given in bootstrap.servers
针对你遇到的问题,结合配置和报错信息,以下是具体的排查和解决步骤:
1. 关键修复:配置advertised.listeners参数
在Kafka的server.properties中添加或修改以下配置:
advertised.listeners=PLAINTEXT://192.168.1.101:9092
原因:listeners是Kafka服务端实际监听的网络地址,而advertised.listeners是Kafka返回给客户端的连接地址。如果未配置advertised.listeners,Kafka可能会返回机器的hostname或localhost给客户端,导致客户端无法解析到正确的IP(即使你在bootstrap-servers里指定了IP)。加上这个配置后,客户端会直接收到你指定的可访问IP地址。
修改后重启Kafka服务。
2. 验证Kafka服务监听状态
在CentOS7服务器上执行以下命令,确认Kafka真的在监听192.168.1.101:9092:
ss -tulpn | grep 9092
如果输出中显示LISTEN状态的地址是192.168.1.101:9092,说明监听正常;如果是127.0.0.1:9092或0.0.0.0:9092,需要检查listeners配置是否生效,或者启动Kafka时是否正确加载了server.properties文件。
3. 确认SpringBoot配置是否被正确加载
- 开启SpringBoot的debug日志模式,在启动时观察日志中关于Kafka配置的加载信息,确认
bootstrap-servers确实是192.168.1.101:9092。 - 检查是否有其他配置文件(如
application-dev.yml、application-prod.yml)或环境变量覆盖了bootstrap-servers的值。
4. 版本兼容性检查
确认你的Spring-Kafka版本与kafka-clients-2.6.0版本兼容:
- Spring Boot 2.4.x版本默认搭配Spring-Kafka 2.6.x,与你的
kafka-clients版本匹配;如果Spring Boot版本过高或过低,可能会出现兼容性问题,导致配置解析异常。
5. 额外验证:测试Kafka本身的可用性
在CentOS服务器上用Kafka自带的客户端工具测试生产者和消费者,确认Kafka服务本身正常:
# 启动生产者 bin/kafka-console-producer.sh --broker-list 192.168.1.101:9092 --topic test-topic # 启动消费者 bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.101:9092 --topic test-topic --from-beginning
如果生产者和消费者能正常通信,说明Kafka服务本身没问题,问题出在客户端配置或网络返回地址上。
内容的提问来源于stack exchange,提问作者Sebbbbbbbbb5
相关产品推荐
相关产品推荐

