目前我很难解决这个问题。
鉴于我有一个MongoDB实例,在欧洲(包含主要)和美国的两个数据中心上分割为副本集。每个数据中心都包含所有需要的组件(mongod,mongos,rcrs)。即使后端和前端也分为两个数据中心。
如果欧洲与美国之间的联系被打破,现在会发生什么?美国的mongo实例会选择一个新的主要并继续自己运作吗?如果是这种情况,如果欧盟与我们之间的联系得到解决,会发生什么?
答案 0 :(得分:1)
这在很大程度上取决于您如何设置副本集。如果连接断开,那么首先可以达到多数的数据中心将具有主要选举权。我的意思是,如果你在美国的数据中心只有2个成员,3个成员在欧洲并且假设它只是网络故障而系统没有实际下降那么欧洲数据中心可以达到多数,因为它有3个成员所以主要那么在欧洲,因为其余2名成员不会占多数。即使美国的一个人成为初级,一旦注意到它无法达到多数,它就会下台。设置副本集分区总是更好,它始终具有主要分区。
当整套装回来时,有很多东西在起作用,比如 - 最新数据,优先级,隐藏成员等。如果让我们说美国的那个有优先权,但由于它没有最新的数据,它不能成为小学。只有在它同步到最新记录之后,才会成为主要记录。
希望这有点帮助。