Node.js nodejs应用程序如何知道在副本集中选择了新的主mongodb?
我读了一些关于mongodb复制的文章。我想在两个不同数据中心的两台服务器上设置mongodb复制,以便为连接到它的NodeJS应用程序提供更高的可用性。假设我的主mongodb实例位于美国新泽西州纽瓦克,IPNode.js nodejs应用程序如何知道在副本集中选择了新的主mongodb?,node.js,mongodb,replication,Node.js,Mongodb,Replication,我读了一些关于mongodb复制的文章。我想在两个不同数据中心的两台服务器上设置mongodb复制,以便为连接到它的NodeJS应用程序提供更高的可用性。假设我的主mongodb实例位于美国新泽西州纽瓦克,IP111.111.111,次mongodb实例位于加拿大安大略省多伦多,IP222.222.222。据我所知,如果111.111.111.111遇到故障,那么222.222.222将选择自己作为主要用户 我不明白的是,我应该如何配置NodeJS应用程序的数据库连接,以便与任何mongodb实
111.111.111
,次mongodb实例位于加拿大安大略省多伦多,IP222.222.222
。据我所知,如果111.111.111.111
遇到故障,那么222.222.222
将选择自己作为主要用户
我不明白的是,我应该如何配置NodeJS应用程序的数据库连接,以便与任何mongodb实例通信。我不明白我的NodeJS应用程序如何在网络中断的情况下成功地将数据传输到数据库,数据中心为111.111.111
或222.222.222
。例如,考虑下面的场景:
- 在我的NodeJS应用程序中,我的
文件有一个数据库连接字符串,其值为.env
DB_HOST=111.111.111
- 位于
的数据中心遇到网络中断111.111.111.111
- NodeJS应用程序无法到达
并接收到111.111.111.111
错误网络超时
- 位于
的mongodb实例选择自己作为主数据库222.222.222.222
- NodeJS应用程序不知道存在
222.222.222.222
222.222.222.222
?我的NodeJS应用程序是否应该连接到负载平衡器,负载平衡器是否应该连接到副本集的每个mongodb实例?或者我的NodeJS应用程序是否需要一系列故障切换mongodb连接,并系统地尝试每一个连接,直到成功?或者我是否构建某种Websocket/MQTT代理服务器,将每个mongodb实例的运行状况传递给我的nodejs应用程序,以便我的nodejs应用程序在每次传输之前知道要连接到哪个实例
当主应用程序出现故障时,如何让我的NodeJS应用程序成功地将数据传输到mongodb?谢谢,我将尝试一下!