目录
MongoDB 作为一款广受欢迎的现代文档数据库,其高可用性(High Availability, HA)、高性能(High Performance)和高可扩展性(High Scalability)是其核心特性,使得它在各种大规模数据处理场景中表现出色。
MongoDB 有如下特点:
- 面向文档,无模式
- 高性能
- 高可扩展
- 高可用
- 灵活性高
下面来分别介绍下"三高",高可用、高性能、高可扩展的原理。
一、高可扩展性
应用数据集的大小在飞速增加。传感器技术的发展、带宽的增加,以及可连接到因特网的手持设备的普及使得当下即便很小的应用也要储存大量数据,量大到很多数据库应付不过来。
MongoDB 从设计之初就考虑扩展的问题。采用了面向文档的数据模型使其可以自动在多台服务器之间分割数据,进行数据分片(sharding)。还可以平衡集群数据和负载,自动重排文档,这样只需要在集群中添加新机器,然后让数据库处理接下来的事。
分片是 MongoDB 实现水平扩展的关键技术,通过将数据切分为多个分片(shards),每个分片可以是一个副本集,分散存储在不同的服务器上。
分片通过分片键(shard key)将数据均匀分布到各个分片,客户端通过查询路由器