1.Mongodb分片集群特点
1.MongoDB的分片集群解决的问题:
- 数据容量日益增大,访问性能日渐降低,怎样破?
- 新品上线异常火爆,如果支撑更多的并发用户?
- 单库已有10TB数据,恢复需要1-2天,如果加速?
- 地理分布数据
2.MongoDB完成的分片集群
Mongos:路由节点,提供集群单一入口,转发应用端请求,选择合适数据节点进行读写,合并多个数据节点的返回,它是无状态的,建议至少2个
config节点:配置(目录)节点提供集群元数据存储,分片数据分布的映射。
数据节点:以复制集为单位,横向扩展,最大1024分片,分片之间数据不重复,所有分布在一起才完整工作。
3.MongoDB分片集群特点
- 应用全透明,无特殊处理
- 数据自动均衡
- 动态扩容,无须下线
- 提供三种分片方式
4.Mongo的分片主要有以下几种分布方式
- 基于范围,片键范围查询性能好,优化读,但缺点是数据分布可能不均匀,容易有热点
- 基于Hash,数据分布均匀,写优化,适用于日志,物联网等高并发场景,但缺点是查询效率低
- 基于zone/tag(地域性)
5.小结
- 分片集群可以有效解决性能瓶颈以及系统扩容问题
- 分片额外消耗较多,管理也比较复杂