求助:MongoDB Kafka Sink Connector连接Docker部署的MongoDB失败
问题解决步骤
1. 修正Docker网络层面的连接地址问题
你的MongoDB运行在Docker容器中,如果Kafka Connect同样是容器部署的话,localhost:64000对Connect容器来说指向的是容器自身,而非宿主机,这是导致连接失败的核心原因之一:
- 若Kafka Connect和MongoDB在同一个Docker网络:将
connection.uri修改为mongodb://mongodb:27017(mongodb是你的MongoDB容器名,使用容器内部端口27017而非宿主机映射的64000) - 若Connect在宿主机运行:保留
mongodb://localhost:64000,但需确认Connect进程能正常访问宿主机的64000端口 - 通用兼容方案:用宿主机的实际局域网IP替换localhost,例如
mongodb://192.168.1.100:64000(替换为你的宿主机真实IP)
2. 验证MongoDB Kafka连接器是否正确安装
执行以下命令查看Kafka Connect已加载的插件列表:
curl http://localhost:8083/connector-plugins
检查返回结果中是否包含com.mongodb.kafka.connect.MongoSinkConnector。如果没有,说明插件未正确部署:
- 下载与你的Kafka、MongoDB版本兼容的MongoDB Kafka Connector jar包
- 将jar包放置到Kafka Connect的插件目录(默认路径如
/usr/share/java/kafka-connect-mongodb/,Docker部署需挂载该目录或修改镜像添加jar文件)
3. 修正配置中的拼写错误
你的连接器配置里collection字段存在拼写错误:collecitonTest2 → collectionTest2,虽然这不是当前连接错误的直接原因,但会导致后续数据无法写入目标集合。
4. 测试连接连通性
在Kafka Connect所在环境直接验证MongoDB连接:
- 宿主机环境:执行
mongosh mongodb://localhost:64000,确认能正常连接并访问数据库 - Docker容器环境:进入Connect容器,执行
mongosh mongodb://mongodb:27017(或宿主机IP:64000),验证网络连通性
内容的提问来源于stack exchange,提问作者kfh
相关产品推荐
相关产品推荐

