Windows端python-kafka生产者无法连接Ubuntu上的Apache Kafka服务器
排查Python-Kafka无法连接Ubuntu Kafka服务器的问题
1. 检查Kafka监听配置
Kafka默认仅监听localhost,需修改配置对外提供服务:
- 编辑Kafka配置文件
server.properties(通常路径为/opt/kafka/config/或自定义安装路径) - 修改以下参数:
将listeners=PLAINTEXT://0.0.0.0:9092 advertised.listeners=PLAINTEXT://<Ubuntu机器局域网IP>:9092<Ubuntu机器局域网IP>替换为实际IP(如192.168.1.100) - 重启Kafka服务:
sudo systemctl restart kafka(若使用systemd管理服务)
2. 验证Python代码的连接配置
确保生产者代码指定了正确的Broker地址:
from kafka import KafkaProducer # 替换为Ubuntu机器的实际IP producer = KafkaProducer(bootstrap_servers=['192.168.1.100:9092']) # 后续生产逻辑
- 禁止使用
localhost或127.0.0.1,必须填写Ubuntu机器的局域网IP - 确认端口号为9092,无拼写错误
3. 检查Ubuntu防火墙规则
尽管tcping显示端口开放,仍需确认防火墙规则:
- 查看当前UFW规则:
sudo ufw status - 若9092端口未开放,添加规则:
sudo ufw allow 9092/tcp - 重启UFW生效:
sudo ufw reload
4. 检查版本兼容性
确认python-kafka库与Kafka服务器版本匹配:
- 查看Kafka版本:
kafka-topics.sh --version - 查看python-kafka版本:
pip show kafka-python - 版本差距过大时,调整库版本,例如适配Kafka 2.x的命令:
pip install kafka-python==2.0.2
5. 排查网络路由与DNS问题
- 在Windows机器上ping Ubuntu的IP,确认基础网络连通性
- 代码中优先使用IP而非主机名,避免DNS解析异常
内容的提问来源于stack exchange,提问作者Murtuza T
相关产品推荐
相关产品推荐

