03-理解复制策略
23.1.1 理解复制策略
决定如何部署MongoDB副本集时,需要考虑多个因素。接下来的几小节讨论实现MongoDB副本集时需要考虑的一些因素。
服务器数量
第一个问题是,在副本集中包含多少个服务器。这取决于客户端与数据交互的方式。如果客户端主要是写入数据,使用大量服务器并不能带来多大好处。然而,如果数据大多是静态的,但有大量的写入请求,则添加更多备份服务器肯定会有很大的影响。
副本集数量
另外,还需考虑数据。在有些情况下,将数据拆分到多个副本集,让每个副本集包含不同部分的数据更合适。这让您能够根据数据的特征和性能需求微调每个副本集中的服务器。仅当数据之间没有相关性,客户端访问数据时很少需要连接到多个副本集时,才应考虑这样做。
容错
对应用程序来说容错有多重要?主服务器只是偶尔出现故障,如果这不会影响应用程序,且可轻松地重建数据,也许不需要复制。然而,如果您向客户承诺了提供七个9的可用性,那么任何中断都是极其糟糕的,而长时间中断更是无法接受的。在这种情况下,在副本集中添加服务器以确保可用性是合适的。
需要考虑的另一点是,将一个备份服务器放在备用数据中心,以防整个主数据中心出现故障。然而,出于性能考虑,应将大部分服务器都放在主数据中心。
提示:
如果很看重容错,还应启用日记功能(参见第1章)。启用日记功能后,即便数据中心发生电源故障,也可重放事务。