分布式系统与一致性
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.1 MongoDB的外部接口和架构

我们从MongoDB的外部接口和架构开始讲解。

5.1.1 MongoDB的基本概念

在MongoDB中,数据是以文档形式保存的,一个文档(document)就是一个JSON格式的数据串。一组文档形成一个集合(collection)。一个MongoDB数据库可以包含多个集合。

5.1.2 MongoDB的架构

MongoDB由4个组件构成,它们是mongod、mongos、configserver和client。其中mongod是一个进程,负责接收和处理客户端发送过来的请求,并且负责保存数据。本节重点讲解这个组件。

MongoDB支持单机使用模式,也就是将数据仅保存在一个mongod进程中,这种模式被称作独立(standalone)模式

除了standalone模式,MongoDB还支持另外一种模式,即副本组(replica set)模式。在这种模式下,MongoDB支持将数据冗余地保存多份,每一份称为数据的一个副本(replica)。也就是说,数据被保存在多个mongod进程中。在MongoDB中,数据副本和进程是一一对应的,所以一个mongod进程也被称作一个副本。而这样的一组mongod进程,被称作副本组

在replica set中,只有一个mongod进程被称作首要副本(primary replica),它负责处理写操作,其他的mongod进程都被称作次要副本(secondary replica)。在默认的配置下,读操作也是由首要副本处理的。也就是说,在默认情况下,只有首要副本在工作,次要副本只负责保存冗余数据,随时准备接替首要副本。