【问题标题】:MongoDB replica set not connected in EC2 instanceMongoDB 副本集未在 EC2 实例中连接
【发布时间】:2022-01-18 22:38:18
【问题描述】:

我已经使用了 mongodb 实例并连接了网络负载均衡器并配置了 3 个实例副本集。 当作为单个实例运行时,它工作正常,但在使用副本集时,第一次 API 命中工作正常,但当我给出下一次命中时它失败了。

连续多次点击后再次得到结果。我已经在副本集上运行的 mongodb 实例上尝试了 rs.secondaryOk() 。虽然有时它工作正常,但一段时间后它再次失败,错误 not primary secondary=false

请告诉我你的想法

提前致谢

【问题讨论】:

  • 您不能在 mongoDB 中使用第三方负载均衡器,您需要从驱动程序访问副本集作为副本集(驱动程序将自动识别谁是 PRIMARY 成员并将写入仅转发到 PRIMARY)- > 在 mongoDB replicaSet 架构中,SECONDARY 成员不接受写入,如果您不希望您的驱动程序处理谁是 PRIMARY 和谁是 SECONDARY,您需要部署带有路由服务 (mongoses) 的分片集群,然后您可以在其中连接驱动程序跨度>
  • 谢谢R2D2..我会根据您的建议进行研究和做

标签: mongodb


【解决方案1】:

replicaSet mongoDB 的连接 URI 必须如下所示:

mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myRepl

如果您通过第 3 方负载均衡器单独连接到每个成员,它将无法按预期工作...

【讨论】:

  • 好的,数据库名称应该写在哪里。对于我最后在连接 URL 本身中编写的上一个 URL,但现在我可以在字符串末尾添加 & 并添加 DBName
  • 27017/theDBName?replcaSet=myRepl
  • 成功了,非常感谢
  • 如果您对以下问题也有任何想法stackoverflow.com/questions/70787420/…
猜你喜欢
  • 2017-02-28
  • 1970-01-01
  • 2021-04-13
  • 2013-03-30
  • 2015-06-26
  • 1970-01-01
  • 2020-06-20
  • 2013-12-09
  • 1970-01-01
相关资源
最近更新 更多