時(shí)間:2024-03-26 14:50作者:下載吧人氣:49
MongoDB自動(dòng)分片技術(shù)是一項(xiàng)將集合分散在一組獨(dú)立的分片服務(wù)器上的技術(shù),可以提高M(jìn)ongoDB系統(tǒng)的性能以及允許意外故障的復(fù)原能力,通過它維護(hù)的數(shù)據(jù)可以具有高效穩(wěn)定的性能。
MongoDB擁有一組非常復(fù)雜的技術(shù),用于自動(dòng)將主集合自動(dòng)分解成多個(gè)子集合,也就是所謂的“分片”,并將其分散到一組單獨(dú)的服務(wù)器上,而無需人工干預(yù)。Sharding MongoDB所使用的分片技術(shù),可以有效減少集群的壓力,使集群更加穩(wěn)定,同時(shí)可以提高集群的整體負(fù)載水平,做到高效穩(wěn)定的數(shù)據(jù)訪問能力。
MongoDB的分片技術(shù)是基于一組稱為“分片”的子集合。在這些子集合里,內(nèi)容會(huì)自動(dòng)地根據(jù)一組預(yù)定義的規(guī)則被拆分成許多小集合,MongoDB在根據(jù)這些規(guī)則在不同的分片服務(wù)器上部署這些子集合,使它們共同維護(hù)著總集合的整體狀態(tài)。
分片技術(shù)的實(shí)現(xiàn)主要是兩個(gè)步驟,包括分片策略的定義和數(shù)據(jù)的部署。其中,分片策略的定義,管理員首先需要確定上述提到的分片規(guī)則(如數(shù)據(jù)拆分,元素賦值等),然后將這些規(guī)則放入MongoDB中。而數(shù)據(jù)部署則是將滿足規(guī)則的數(shù)據(jù)根據(jù)管理定義的分片策略,部署到分片服務(wù)器中去。
同mongoDB數(shù)據(jù)分片有關(guān)的代碼示例如下:
//我們首先聲明分片規(guī)則
sh.shardCollection(“nasdaq.transactions”, { symbol : 1 } )
//然后建立集群
var config = {
analysis_threshold_ms : 5,
shards:{
s0 : { host : “s0.example.net:27017”, priority:0 },
s1 : { host : “s1.example.net:27017”, priority:1 },
s2 : { host : “s2.example.net:27017”, priority:2 },
s3 : { host : “s3.example.net:27017”, priority:3 }
}
};
sh.addShard(config);
//最后實(shí)施回收回收原集群中的數(shù)據(jù)
sh.startBalancer();
由上可見,MongoDB自動(dòng)分片技術(shù)可以有效的將分布的數(shù)據(jù)集拆分為多個(gè)子數(shù)據(jù)集,而無需任何人工干預(yù),可以節(jié)省大量時(shí)間,并解決了集群儲(chǔ)存能力不足的問題,使得訪問數(shù)據(jù)可以具有高效穩(wěn)定的性能。
網(wǎng)友評(píng)論