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