mongodb的副本集提供了主从模式和宕机投票重新调整主从机制。
假如有三台机器:
- A(ip1),主节点 *
- B(ip2),从节点
- C(ip3),从节点
客户端(即Web后端)数据库连接填写的是 A 的地址 ip1。
现在假设 A 宕掉,网络调整为:
- A(ip1),故障
- B(ip2),主节点 *
- C(ip3),从节点
但这个过程客户端并不知道吧,它依然连接着 A,无法读写。
为了适应网络变化,客户端需要手动改成连接 B 的地址???有没有类似于 mongos 路由的方式,能够在数据库实现自动的切换?
客户端为啥只连接着 A?不应该是 A/B/C 都连接吗?SDK 自己内部选择哪个是可用的主才会往里写数据。
不知道你客户端是啥语言,以 Java 距离,
new MongoClient(addrs)
的时候第一个参数是一个数组,你应该把这个副本集的所有节点都传进去。