天天看點

MongoDB · 特性分析· Sharding原理與應用

如果你還不了解 mongodb sharded cluster,可以先看文檔認識一下

MongoDB · 特性分析· Sharding原理與應用

當你考慮使用 sharded cluster 時,通常是要解決如下2個問題

存儲容量受單機限制,即磁盤資源遭遇瓶頸。

讀寫能力受單機限制(讀能力也可以在複制集裡加 secondary 節點來擴充),可能是 cpu、記憶體或者網卡等資源遭遇瓶頸,導緻讀寫能力無法擴充。

如果你沒有遇到上述問題,使用 mongodb 複制集就足夠了,管理維護上比 sharded cluster 要簡單很多。

當你決定要使用 sharded cluster 時,問題來了,應該部署多少個 shard、多少個 mongos?這個問題首富已經指點過我們,『先定一個小目标,比如先部署上1000個 shard』,然後根據需求逐漸擴充。

回到正題,shard、mongos 的數量歸根結底是由應用需求決定,如果你使用 sharding 隻是解決 『海量資料存儲』的問題,通路并不多,那麼很簡單,假設你單個 shard 能存儲 m, 需要的存儲總量是 n。