You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kafka Connect连接Schema Registry超时及Postgres连接故障求助

问题总结与解决方案

最终问题根源是主机防火墙限制了Docker容器到主机的网络连通性,添加允许容器子网访问主机对应服务端口的防火墙规则后,所有连接问题解决。

问题排查过程
  1. 初始Schema Registry连接异常
    配置中使用主机IP指定value.converter.schema.registry.url时,Kafka Connect抛出SerializationException,底层为SocketTimeoutException。但在主机上通过curl访问Schema Registry地址完全正常。

    • 在Connect容器内部测试:使用容器名kafka-schemaregistry0-1访问Schema Registry(curl http://kafka-schemaregistry0-1:8085/schemas/ids/5)正常,说明容器间网络通信无问题,但容器到主机的网络通路受阻。
    • 将Connector配置中的Schema Registry地址改为容器名后,Schema Registry连接恢复,但随即出现Postgres连接失败错误:org.postgresql.util.PSQLException: The connection attempt failed,进一步确认容器无法访问主机上的服务。
  2. 关键验证点

    • 查看Docker网络信息:所有服务容器均处于kafka_default桥接网络,子网为172.25.0.0/16,容器间IP和域名解析正常。
    • 回顾近期操作:VM上安装NGINX并停止apache2,该操作可能修改了主机防火墙规则,导致容器子网的访问被阻断。
修复步骤
  1. 确认Docker容器子网
    通过以下命令获取容器所属子网:

    docker network inspect kafka_default
    

    从输出中得到子网为172.25.0.0/16。

  2. 添加防火墙规则
    允许容器子网访问主机的Postgres端口(默认5432)和Schema Registry端口(8085):

    • 若使用ufw防火墙:
      ufw allow from 172.25.0.0/16 to any port 5432
      ufw allow from 172.25.0.0/16 to any port 8085
      ufw reload
      
    • 若使用iptables防火墙:
      iptables -A INPUT -s 172.25.0.0/16 -p tcp --dport 5432 -j ACCEPT
      iptables -A INPUT -s 172.25.0.0/16 -p tcp --dport 8085 -j ACCEPT
      
  3. 验证修复效果
    重启Kafka Connect容器,检查Connector日志确认连接正常:

    docker restart kafka-kafka-connect0-1
    

内容的提问来源于stack exchange,提问作者Kjell van Straaten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 03:01:40