在mongo中添加新成员,防止应用程序中出现错误异常


Add new member in mongo and preventing the error exception in application

我在EC2上有三个实例,每个实例都有服务mongo,设置副本集,即主(192.168.1.1),辅助(192.168.1.2)和仲裁(192.168.1.3)。

我有几个应用程序连接到mongo。

我的问题如下:

如果我在副本中添加另一个成员,我必须更改连接设置中的所有应用程序以包含新成员?

因为是我问的。

假设最后的。1是主的,。2是辅助的,那么在最后的。4上添加一个新成员。我没有在应用程序数据库设置中包括这个新成员。如果主值下降,仲裁者选择ip值为0.4作为新的主值。所有应用程序都会抛出异常。

我如何"修复"它,以一种方式,总是我必须添加一个新的成员,而不需要改变应用程序数据库的配置。想象一下,如果我必须添加n个成员。

在知道我的应用程序是PHP的情况下,您是否有任何方法可以配置应用程序,以便在不添加主机配置的情况下单独识别主服务器?

无需更改应用程序中的任何内容。您只需使用命令rs.add("地址:端口")向副本集添加新节点。如果你有3个节点(主节点和2个辅助节点),你不应该有任何仲裁者,如果所有这些节点都是投票成员。(投票计数应该总是奇数)

可以用优先级值"选择"主继承顺序。如果你设置你的。1节点优先级。到3,.2节点优先级为2,并将最后一个次要节点保留为优先级1,如果可以,.1保持为主,当它不能时,.2被选为主…关键是,你的应用程序连接到副本集的一个节点,它(应用程序)自动获取该副本集的其他节点和"谁"是主节点的信息就足够了。

使用三个节点的副本集,您必须始终有两个节点启动并运行(majority;