企业集群中 mongodb 分片设计

分片的基本标准

·关于数据:数据量不超过3TB,尽量可能保持在2TB一个分片
·关于索引:常用索引必须容纳进内存
·按照以上标准初步确定分片后,还需要考虑业务压力,随着压力增大,CPU、RAM、磁盘中的任何一项出现瓶颈时,都可以通过添加更多分片来解决。

如何粗略判断需要多少分片

条件 分片个数
B:工作集大小/单服务器内存容量 400GB/(256G * 0.6) = 3
A:所需存储总量/单服务器可挂载容量 8TB/2TB = 4
C:并发总数/(单服务器兵法量*0.7) 30000/(9000*0.7)=6
D:额外开销
分片数量 = max(a,b,c) + d = ?

额外的考量

考虑分片的分布:
·是否需要跨机房分布分片?
·是否需要容灾?
·高可用的要求如何?

选择片键的正确姿势

影响片键效率的主要因素:
·取值基数(Cardinality); 
·取值分布;
·分散写,集中读;
·被尽可能多的业务场景用到;
·避免单调递增或递减的片键;

多地域 zone 分片

image-20220902173120162