【问题标题】:Timeout exception with mongo db installed inside docker container安装在 docker 容器内的 mongo db 超时异常
【发布时间】:2019-05-05 14:32:43
【问题描述】:

我已经设置了 docker 并创建了四个容器(每个容器都安装了单个 mongodb 实例并启用了身份验证)来启用带有仲裁器的 mongodb 复制。我还向主机公开了 mongodb 的 27017 端口,以便外部应用程序应该能够连接它,但我无法从 Eclipse 连接我的 JAVA Spring 应用程序。

以下是我使用的mongo uri:

mongodb://username:password@192.168.1.102:18088,192.168.1.102:18089,192.168.1.102:18099/?authSource=dbName;replicaSet=rs0;readPreference=secondaryPreferred;authMechanism=SCRAM-SHA-1; waitQueueMultiple=100 Exception"在等待匹配 com.mongodb.client.internal.MongoClientDelegate$1@739c3a21 的服务器时超时 30000 毫秒。集群状态的客户端视图是 {type=REPLICA_SET,servers=[{address=mongo3 :27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo3}, 由 {java.net.UnknownHostException: mongo3}} 引起,{address=mongo2:27017, type=UNKNOWN, state=CONNECTING , exception={com.mongodb.MongoSocketException: mongo2}, 由 {java.net.UnknownHostException: mongo2}} 引起,{address=mongo1:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo1},由 {java.net.UnknownHostException: mongo1}} 引起,{address=mongorb:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongorb}, ca {java.net.UnknownHostException: mongorb}}];嵌套异常是 com.mongodb.MongoTimeoutException: 在等待与 com.mongodb.client.internal.MongoClientDelegate$1@739c3a21 匹配的服务器时超时 30000 毫秒。集群状态的客户端视图是 {type=REPLICA_SET, servers=[{address=mongo3:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo3}, 由 {java.net.UnknownHostException: mongo3}}, {address=mongo2:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo2}, 由 {java.net.UnknownHostException: mongo2}} 引起,{address=mongo1:27017 , type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo1}, 由 {java.net.UnknownHostException: mongo1}} 引起, {address=mongorb:27017, type=UNKNOWN, state=CONNECTING, 异常={com.mongodb.MongoSocketException: mongorb},由 {java.net.UnknownHostException: mongorb}} 引起”

【问题讨论】:

    标签: spring mongodb docker containers database-replication


    【解决方案1】:

    这一点:

    {address=mongo3:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo3}, 由 {java.net.UnknownHostException: mongo3}} 引起

    为您的每个 mongo 实例重复,本质上这意味着您的 mongo 实例无法访问,因为 mongorbmongo1mongo2mongo3 没有被充分映射到相应的 IP .

    您似乎还试图将每个实例映射到192.168.1.102 上的不同端口,但您的代码正在默认端口27017 上发出所有请求。

    我不熟悉 Eclipse 或 Spring,但您应该为每个实例配置主机、IP 和端口,然后它应该可以正常运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 2017-04-29
      • 2014-09-17
      • 2015-11-26
      相关资源
      最近更新 更多