我在EC2上有三个实例,每个实例都有服务mongo,设置了副本集,即主副本(192.168.1.1),副主副本(192.168.1.2 )和仲裁者(192.168.1.3)。在mongo中添加新成员并防止应用程序中的错误异常
我有几个应用程序连接到mongo。
我的问题如下:
如果我在副本添加其他成员,我不得不改变在连接设置中的所有应用程序,包括新成员?
因为我问了。
假设ip以final .1为主,.2为secondary,然后添加一个新成员到最后的ip .4。而且我不在应用程序数据库设置中包含这个新成员。小学生跌倒了,仲裁人选择了.4作为新的小学。所有应用程序将开始抛出异常。
我该如何“修复”它,以某种方式总是必须添加一个新成员并不需要更改应用程序数据库的配置。想象一下,如果我必须添加'n'个成员。
您是否有任何方式来配置应用程序,知道我的应用程序在PHP中,无需添加主机配置即可单独标识主要应用程序?
这很困难;除非您足够幸运,您的初始主机集永远保留在副本集中,并且总是至少有一个主动和可用,那么您最终必须更改应用配置。这个问题的各种解决方案称为[tag:service-discovery],并让您的应用程序联系第三个系统以找出它可以连接到复制集的地方。 –