這篇文章主要介紹“MongoDB高可用分為哪些方式”,在日常操作中,相信很多人在MongoDB高可用分為哪些方式問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”MongoDB高可用分為哪些方式”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
在山海關(guān)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需求定制開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營(yíng)銷推廣,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),山海關(guān)網(wǎng)站建設(shè)費(fèi)用合理。
1 : MongDB的架構(gòu)設(shè)計(jì)之中,MongoDB支持多個(gè)機(jī)器之間通過(guò)異步復(fù)制達(dá)到故障轉(zhuǎn)移和實(shí)現(xiàn)冗余,多臺(tái)的機(jī)器之中只有一臺(tái)是用于寫(xiě)操作,正是由于這個(gè)原因,在MongoDB之中只有一臺(tái)充當(dāng)了Primary角色的機(jī)器能把讀操作分發(fā)給Slave。
MongoDB 高可用可以分為兩種的方式:
1:master——Slave 主從復(fù)制,目前已經(jīng)不怎么實(shí)用了
2:Replica Sets復(fù)制集
MongoDB 在1.6版之后加入了新的一個(gè)功能點(diǎn)叫做復(fù)制及:replica Set,增加了故障的自動(dòng)切換和自動(dòng)修復(fù)成員節(jié)點(diǎn)。各個(gè)DB之間的數(shù)據(jù)完全一致。大大降低了維護(hù)成功,
如圖:
數(shù)學(xué)上來(lái)將,就是一個(gè)同構(gòu)型的集合:也就是一個(gè)集群。MongoDB的Relica Set架構(gòu)是通過(guò)一個(gè)日志來(lái)存儲(chǔ)寫(xiě)操作的。這個(gè)操作就叫做”oplog“,oplog.rs 是一個(gè)固定長(zhǎng)度的CappedCollection。這個(gè)Collection的位置存在于“Local數(shù)據(jù)庫(kù)之中”,用于記錄Replica Set操作的日志,它在默認(rèn)的情況之下,對(duì)于64位的MongoDB,opLog是比較大的??梢赃_(dá)到5%的磁盤空間,oplog的大小是可以通過(guò)Mongod的參數(shù) ”—oplogSize“來(lái)改變。
除了固定的復(fù)制集意外,還保持了較好的伸縮性,一旦需求得不到滿足,那么就需要添加新的機(jī)器。那么句需要增加一些節(jié)點(diǎn)將壓力平均分配一下。
增加節(jié)點(diǎn)的方式,一般可以通過(guò)oplog直接進(jìn)行增加節(jié)點(diǎn),操作簡(jiǎn)單并且無(wú)需人工干預(yù),可是oplog是
capped collection,采用的循環(huán)方式進(jìn)行日志處理,所以采用的是oplog的方式來(lái)添加,可能會(huì)有不一致的問(wèn)題。
因?yàn)槿罩局虚g存儲(chǔ)的信息由可能已經(jīng)刷新過(guò)了。不過(guò)沒(méi)關(guān)系。通常而言,你可以通過(guò)數(shù)據(jù)庫(kù)的快照 --fastsync和oplog結(jié)合的
方式來(lái)增加節(jié)點(diǎn)。這種方式的操作流程是,先取某一個(gè)復(fù)制集成員的物理文件來(lái)作為一個(gè)初始化的數(shù)據(jù),然后剩余的部分用
oplog的方式去添加。
而 Sharding,這是一種將海量的數(shù)據(jù)水平擴(kuò)展的數(shù)據(jù)庫(kù)集群系統(tǒng),數(shù)據(jù)庫(kù)分表存儲(chǔ)在 sharding的各個(gè)節(jié)點(diǎn)之上。MongoDB的數(shù)據(jù)分塊成為chunk,每一個(gè)Chunk都是Collection中一段連續(xù)的數(shù)據(jù)記錄,通常的最大的尺寸是200MB。超出那么就會(huì)生成一個(gè)最新的數(shù)據(jù)塊。這個(gè)和Hbase Region的分裂是一樣的。
整個(gè)分拆的過(guò)程大致如下:
對(duì)于MongoDB
首先在CL: Client 這一層面來(lái)說(shuō),底層是否需要分片?是否需要這樣的一個(gè)復(fù)制集對(duì)與使用者來(lái)說(shuō)完全不必要知道。Mongos: 好比就是一個(gè)大管家,要怎么去分拆Collections?,你Client完全不必要知道,只需要你告訴我一個(gè)東西:分區(qū)的Key是什么?在很多的組件之中,包括在hadoop,Storm,等個(gè)各種數(shù)據(jù)庫(kù)之中都會(huì)有這樣的一個(gè) Partition Key的概念。對(duì)應(yīng)于我們的網(wǎng)絡(luò)之上就會(huì)充當(dāng)了這樣一個(gè)路由的功能。并且將自己所把控的一些集群的信息存放在Config服務(wù)器之中。
在其他的數(shù)據(jù)庫(kù)中間也就是如此,對(duì)于Hbase。依然需要對(duì)于表再進(jìn)行分拆。對(duì)應(yīng)于Hbase之中的Region。和MongoDB的分片其實(shí)用一個(gè)比較常用的英文名字就叫做 Segment。
如果你對(duì)于Hbase之流不夠了解沒(méi)關(guān)系。你只是需要知道,Region是表分裂的一個(gè)片段,region按大小分割的,每個(gè)表一開(kāi)始就只是一個(gè)Region,Region隨著數(shù)據(jù)的寫(xiě)入會(huì)不斷的擴(kuò)大,以至于達(dá)到了設(shè)計(jì)閾值以后,Region就開(kāi)始分裂了,由1分二。當(dāng)table中的行越來(lái)越多的時(shí)候,Region的數(shù)量就越來(lái)越多。
HRegion是Hbase之中分布式存儲(chǔ)和負(fù)載的最小的單位,在這里給出一個(gè)比照的圖:如下:
而在kafka之中之中的Replication,其實(shí)更加相當(dāng)于Hadoop體系之中的 【副本機(jī)制】,和分片所需要解決的矛盾不同。
簡(jiǎn)單的額來(lái)說(shuō),分布式系統(tǒng)有自己獨(dú)特的屬性與性質(zhì),對(duì)于其存存儲(chǔ)體系有著固定的訴求。
到此,關(guān)于“MongoDB高可用分為哪些方式”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
新聞標(biāo)題:MongoDB高可用分為哪些方式
網(wǎng)站網(wǎng)址:http://m.rwnh.cn/article4/gdigoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站收錄、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站排名、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)