您好,登錄后才能下訂單哦!
小編給大家分享一下mongodb中分片是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
分片(sharding)是MongoDB用來(lái)將大型集合分割到不同服務(wù)器(或者說(shuō)一個(gè)集群)上所采用的方法。
分片的目的:
高數(shù)據(jù)量和吞吐量的數(shù)據(jù)庫(kù)應(yīng)用會(huì)對(duì)單機(jī)的性能造成較大壓力,大的查詢量會(huì)將單機(jī)的CPU耗盡,大的數(shù)據(jù)量對(duì)單機(jī)的存儲(chǔ)壓力較大,最終會(huì)耗盡系統(tǒng)的內(nèi)存而將壓力轉(zhuǎn)移到磁盤(pán)IO上。
為了解決這些問(wèn)題,有兩個(gè)基本的方法: 垂直擴(kuò)展和水平擴(kuò)展。
垂直擴(kuò)展:增加更多的CPU和存儲(chǔ)資源來(lái)擴(kuò)展容量。
水平擴(kuò)展:將數(shù)據(jù)集分布在多個(gè)服務(wù)器上。水平擴(kuò)展即分片。
分片設(shè)計(jì)思想:
分片為應(yīng)對(duì)高吞吐量與大數(shù)據(jù)量提供了方法。使用分片減少了每個(gè)分片需要處理的請(qǐng)求數(shù),因此,通過(guò)水平擴(kuò)展,集群可以提高自己的存儲(chǔ)容量和吞吐量。舉例來(lái)說(shuō),當(dāng)插入一條數(shù)據(jù)時(shí),應(yīng)用只需要訪問(wèn)存儲(chǔ)這條數(shù)據(jù)的分片.
使用分片減少了每個(gè)分片存儲(chǔ)的數(shù)據(jù)。
分片的優(yōu)勢(shì):
1、mongos 對(duì)集群進(jìn)行抽象,讓集群“不可見(jiàn)”
mongodb中沒(méi)有failover機(jī)制,官方建議是將mongos和應(yīng)用服務(wù)器部署在一起,多個(gè)應(yīng)用服務(wù)器就要部署多個(gè)mongos實(shí)例。mongos作為統(tǒng)一路口的路由器,其會(huì)將客戶端發(fā)來(lái)的請(qǐng)求準(zhǔn)確無(wú)誤的路由到集群中的一個(gè)或者一組服務(wù)器上,同時(shí)會(huì)把接收到的響應(yīng)拼裝起來(lái)發(fā)回到客戶端。
2、保證集群總是可讀寫(xiě)
MongoDB通過(guò)多種途徑來(lái)確保集群的可用性和可靠性。將MongoDB的分片和復(fù)制功能結(jié)合使用,在確保數(shù)據(jù)分片到多臺(tái)服務(wù)器的同時(shí),也確保了每分?jǐn)?shù)據(jù)都有相應(yīng)的備份,這樣就可以確保有服務(wù)器換掉時(shí),其他的從庫(kù)可以立即接替壞掉的部分繼續(xù)工作。
3、使集群易于擴(kuò)展
當(dāng)系統(tǒng)需要更多的空間和資源的時(shí)候,MongoDB使我們可以按需方便的擴(kuò)充系統(tǒng)容量。
看完了這篇文章,相信你對(duì)mongodb中分片是什么有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。