一边搭建一边理解MongoDB副本集(分布于两个或多个数据中心的副本集)
作者:链上研发-175405
时间:2017-01-21
概览
尽管副本集提供了对于单节点故障的基础保护,那些位于同一个数据中心的成员还是容易受到数据中心故障的影响。断电,网络中断和自然灾害都可能影响那些在同一个数据中心的副本及成员。
不同地理位置的数据中心分布部署副本集节点于增加了冗余性并在其中一个数据中心不可用湿提供了容错。
分布部署成员
为了在数据中心故障时保护你的数据,保证至少有一个节点运行在备份数据中心中。如果可能,使用奇数个数据中心,然后选择分布部署的数量最大化满足在损失时一个数据中心的情况下,剩下的副本集成员可以选举出主节点或者至少提供一份数据的备份。
例子
三个成员的副本集
例如,对于三个成员的副本集,可行的分布部署方法包括:
- 两个数据中心:两个成员在数据中心1,一个成员在数据中心2。如果副本集中其中一个成员是监督者,把拥有数据的成员和监督者部署到数据中心1。
- 如果数据中心1故障,副本集变为只读。
- 如果数据中心2故障,副本集仍然可写,因为在数据中心1的节点可以进行选举。
- 三个数据中心:一个成员在数据中心1,一个在数据中心2,一个在数据中心3
- 如果任何一个数据中心故障,副本集仍然可写,因为剩下的成员可以进行选举。