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

Pulsar MongoDB Debezium源连接器无法连接MongoDB Atlas求助

无法通过Debezium MongoDB源连接器连接MongoDB Atlas集群

我通过Docker Compose部署了Pulsar容器,配置Debezium MongoDB源连接器后,始终无法成功连接MongoDB Atlas集群。已严格参照官方文档配置,且咨询过Pulsar和Debezium社区,仍未解决问题。

相关配置与操作

1. Pulsar Docker Compose配置

# 替换为你的实际Docker Compose配置内容
version: '3.8'
services:
  pulsar:
    image: apachepulsar/pulsar:latest
    ports:
      - "6650:6650"
      - "8080:8080"
    volumes:
      - ./pulsar-data:/pulsar/data
    command: bin/pulsar standalone

2. Debezium MongoDB源连接器配置

{
  "name": "mongodb-source-connector",
  "config": {
    "connector.class": "io.debezium.connector.mongodb.MongoDbConnector",
    "mongodb.connection.string": "mongodb+srv://<username>:<password>@<cluster-name>.mongodb.net/",
    "mongodb.database": "target-db",
    "collection.include.list": "target-db.target-collection",
    "tasks.max": "1",
    "topic.prefix": "mongodb",
    "mongodb.ssl.enabled": "true"
  }
}

3. 启动连接器的命令

docker exec -it <pulsar-container-id> bin/pulsar-admin sources create --source-config-file /path/to/connector-config.json

错误日志

方式一:使用mongodb+srv连接字符串时的错误

org.apache.pulsar.client.api.PulsarClientException: Failed to validate MongoDB connection: com.mongodb.MongoSocketException: couldn't resolve host name
    at io.debezium.connector.mongodb.MongoDbConnector.validate(MongoDbConnector.java:324)
    ...
Caused by: com.mongodb.MongoSocketException: couldn't resolve host name
    at com.mongodb.internal.connection.SocketStreamHelper.initializeSocket(SocketStreamHelper.java:107)
    ...

方式二:使用标准连接字符串时的错误

org.apache.pulsar.client.api.PulsarClientException: Failed to validate MongoDB connection: com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='<username>', source='admin', password=<hidden>, mechanismProperties=<hidden>}
    at io.debezium.connector.mongodb.MongoDbConnector.validate(MongoDbConnector.java:324)
    ...
Caused by: com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='<username>', source='admin', password=<hidden>, mechanismProperties=<hidden>}
    at com.mongodb.internal.connection.SaslAuthenticator.wrapException(SaslAuthenticator.java:263)
    ...

排查建议

  • 网络连通性验证:进入Pulsar容器内部,执行ping <cluster-shard>.mongodb.net或telnet <cluster-shard>.mongodb.net 27017,确认容器能正常访问Atlas节点。若使用Docker默认bridge模式,需确保主机防火墙允许容器出站访问27017/27018端口。
  • Atlas白名单检查:登录MongoDB Atlas控制台,确认IP白名单已添加Pulsar容器所在主机的公网IP,测试环境可临时添加0.0.0.0/0(生产环境禁止)。
  • 连接字符串校验:核对用户名、密码、集群地址是否准确,密码中的特殊字符(如@、:)需做URL编码。
  • 版本兼容性确认:确保Debezium MongoDB连接器版本与Atlas的MongoDB版本匹配(例如Atlas 6.0需搭配Debezium 2.3及以上版本)。
  • DNS解析测试:使用mongodb+srv时,在容器内执行nslookup -type=SRV _mongodb._tcp.<cluster-name>.mongodb.net,确认SRV记录能正常解析。
  • SSL配置检查:显式设置mongodb.ssl.enabled=true,并确认容器内已安装必要的CA证书(部分基础镜像可能缺失根证书,需手动添加)。

内容的提问来源于stack exchange,提问作者Services Ramses

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:25:15