如果我有一个 MongoDB 副本集,其中有 3 个节点(主要节点、次要节点、仲裁节点),并且主要节点出现故障,现在次要节点成为主要节点,您如何动态处理客户端中的更改,以便它们现在写入基本的?
我在开发环境中遇到过这种情况,并开始思考处理这种情况的最佳方法。这不是分片集群,只是一个独立的副本集。
您是否检查连接中的某些内容(如“IsPrimary”),如果不是,则更改您的写入位置?
如有任何建议,我们将不胜感激。
谢谢,
小号
到目前为止,我所发现的使我相信实际上是驱动程序会正确地引导它。我认为我的 C# 驱动程序设置是正确的,但我通过 Python 客户端 (PyMongo) 进行连接的方式却不正确。我应该使用类似 pymongo.ReplicaSetConnection 的东西
已显示 Here .
我会继续挖掘,但想分享我目前的发现。
biên tập:
C# - 驱动程序正确地处理连接,非常好
Python:需要如上所述修改我的连接,以便它将写入路由到新的主节点
Python (pymongo) 代码:
from pymongo.replica_set_connection import ReplicaSetConnection
MongoConnection = ReplicaSetConnection('localhost:27017',replicaSet='myReplSet')
--S
Tôi là một lập trình viên xuất sắc, rất giỏi!