Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js nodejs应用程序如何知道在副本集中选择了新的主mongodb?_Node.js_Mongodb_Replication - Fatal编程技术网

Node.js nodejs应用程序如何知道在副本集中选择了新的主mongodb?

Node.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实

我读了一些关于mongodb复制的文章。我想在两个不同数据中心的两台服务器上设置mongodb复制,以便为连接到它的NodeJS应用程序提供更高的可用性。假设我的主mongodb实例位于美国新泽西州纽瓦克,IP
111.111.111
,次mongodb实例位于加拿大安大略省多伦多,IP
222.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
    并接收到
    网络超时
    错误
  • 位于
    222.222.222.222
    的mongodb实例选择自己作为主数据库
  • NodeJS应用程序不知道存在
    222.222.222.222
那么我的NodeJS应用程序如何知道切换到
222.222.222.222
?我的NodeJS应用程序是否应该连接到负载平衡器,负载平衡器是否应该连接到副本集的每个mongodb实例?或者我的NodeJS应用程序是否需要一系列故障切换mongodb连接,并系统地尝试每一个连接,直到成功?或者我是否构建某种Websocket/MQTT代理服务器,将每个mongodb实例的运行状况传递给我的nodejs应用程序,以便我的nodejs应用程序在每次传输之前知道要连接到哪个实例


当主应用程序出现故障时,如何让我的NodeJS应用程序成功地将数据传输到mongodb?

谢谢,我将尝试一下!