時間:2024-03-26 14:47作者:下載吧人氣:44
MongoDB分片技術(shù)是一種數(shù)據(jù)庫分布存儲技術(shù),它可以將一個collection的內(nèi)容自動劃分到N個分片上,讓它們都獨立地提供訪問服務(wù)從而獲得提升性能的效果。
MongoDB的分片是一種將不同的document集合拆分到不同的物理服務(wù)器上的技術(shù),它可以將大型集合拆分到多個物理服務(wù)器上,且每個物理服務(wù)器上的document都是不相關(guān)的。MongoDB分片技術(shù)可以優(yōu)化系統(tǒng)性能,減輕存儲壓力。
分片集群是由以下四類節(jié)點組成:shard、config、router和mongos。shard是由單獨的MongoDB服務(wù)器構(gòu)成的物理服務(wù)器集,用于承載或存儲數(shù)據(jù);config服務(wù)器是存儲副本集配置和元數(shù)據(jù)的服務(wù)器,是一套存儲集群數(shù)據(jù)的元數(shù)據(jù)信息;router是用于將查詢請求路由到正確的shard上,相當(dāng)于數(shù)據(jù)庫中的proxies。
Mongo.db分片技術(shù)分為邏輯分片、物理分片和查詢分片,邏輯分片是把數(shù)據(jù)集劃分到不同的shard上,物理分片是把數(shù)據(jù)拆分到不同的物理服務(wù)器上,查詢分片是把數(shù)據(jù)請求分發(fā)到不同的shard上。MongoDB分片的實現(xiàn)主要包括在用戶端和服務(wù)節(jié)點之間的路由配置以及shard的配置:
// 在用戶端使用Mongos執(zhí)行
//User:{
connections:[ip1,ip2,ip3] // 連接mongos列表
database:db1 // 數(shù)據(jù)庫名
collection:col1 // 集合名
query: // MongoDB查詢語句
}
// 執(zhí)行分片
Mongos.shard(User,shardIps)
// shardIps數(shù)組是物理分片后的
shardIps:[ip1,ip2,ip3,ip4…..]
實現(xiàn)MongoDB分片技術(shù)后,數(shù)據(jù)庫的查詢性能會明顯更高,數(shù)據(jù)庫的總存儲量也會減少,分片的數(shù)據(jù)存儲在不同的服務(wù)器上,使之份數(shù)更加確保。MongoDB分片技術(shù)能夠解決單機性能、容量和可用性的限制,提高數(shù)據(jù)庫的性能,減輕存儲壓力,使得企業(yè)能夠充分利用廉價的機器資源,節(jié)省更多的經(jīng)費,即使企業(yè)沒有大量的資源也可以輕松實現(xiàn)大規(guī)模微服務(wù)。
網(wǎng)友評論