- MongoDB權(quán)威指南(第3版)
- (美)香農(nóng)·布拉德肖 克里斯蒂娜·霍多羅夫 (愛爾蘭)約恩·布拉齊爾
- 546字
- 2021-12-06 11:37:08
1.2 易于擴展
應(yīng)用程序的數(shù)據(jù)集大小正以驚人的速度在增長。可用帶寬的增加和存儲價格的下降,使得即使是小規(guī)模的應(yīng)用程序所需要存儲的數(shù)據(jù)量,也超出了很多數(shù)據(jù)庫的處理能力。TB 級別的數(shù)據(jù)量,過去聽起來是天文數(shù)字,現(xiàn)在已經(jīng)司空見慣了。
隨著所需存儲數(shù)據(jù)量的增長,開發(fā)人員面臨一個艱難的決定:應(yīng)該如何擴展數(shù)據(jù)庫?這可以歸結(jié)為兩種選擇:縱向擴展(提高配置)和橫向擴展(將數(shù)據(jù)分布到更多機器上)。縱向擴展通常是阻力最小的途徑,但它也有缺點:大型機器一般非常昂貴,而且在最終達到物理極限時,就無法再升級到更高的配置了。另一種方式是橫向擴展:如果想增加存儲空間或增加讀寫操作的吞吐量,那么可以購買額外的服務(wù)器,并將它們添加到集群中。這既便宜又便于擴展,但管理 1000 臺機器比管理 1 臺機器困難得多。
MongoDB 的設(shè)計采用了橫向擴展。面向文檔的數(shù)據(jù)模型使跨多臺服務(wù)器拆分數(shù)據(jù)更加容易。MongoDB 會自動平衡跨集群的數(shù)據(jù)和負載,自動重新分配文檔,并將讀寫操作路由到正確的機器上,如圖 1-1 所示。

圖 1-1:使用分片將 MongoDB 橫向擴展至多臺服務(wù)器
MongoDB 集群的拓撲結(jié)構(gòu),或者說其連接的是一個集群還是單個節(jié)點,對應(yīng)用程序來說都是透明的。這使得開發(fā)人員能夠?qū)W⒂趹?yīng)用程序的開發(fā),而無須考慮擴展問題。同樣,如果需要擴展現(xiàn)有部署的拓撲結(jié)構(gòu)以支持更多負載,那么也無須更改應(yīng)用程序的邏輯。
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- Mastering Zabbix(Second Edition)
- Learn Type:Driven Development
- GameMaker Programming By Example
- Python編程實戰(zhàn)
- Active Directory with PowerShell
- 編程菜鳥學(xué)Python數(shù)據(jù)分析
- C/C++程序員面試指南
- Learning Concurrency in Kotlin
- Service Mesh實戰(zhàn):基于Linkerd和Kubernetes的微服務(wù)實踐
- Azure Serverless Computing Cookbook
- 代替VBA!用Python輕松實現(xiàn)Excel編程
- 零代碼實戰(zhàn):企業(yè)級應(yīng)用搭建與案例詳解
- Solutions Architect's Handbook
- 從程序員角度學(xué)習(xí)數(shù)據(jù)庫技術(shù)(藍橋杯軟件大賽培訓(xùn)教材-Java方向)