久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MongoDB高可用分為哪些方式

共計(jì) 1913 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。

這篇文章主要介紹“MongoDB 高可用分為哪些方式”,在日常操作中,相信很多人在 MongoDB 高可用分為哪些方式問(wèn)題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”MongoDB 高可用分為哪些方式”的疑惑有所幫助!接下來(lái),請(qǐng)跟著丸趣 TV 小編一起來(lái)學(xué)習(xí)吧!

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% 的磁盤(pán)空間,oplog 的大小是可以通過(guò) Mongod 的參數(shù)  ”—oplogSize“來(lái)改變。

    除了固定的復(fù)制集意外,還保持了較好的伸縮性,一旦需求得不到滿(mǎn)足,那么就需要添加新的機(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)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-16發(fā)表,共計(jì)1913字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 太康县| 信丰县| 遂宁市| 汨罗市| 道真| 河北区| 历史| 衡阳市| 德保县| 河津市| 广元市| 阳高县| 安塞县| 肥城市| 贵溪市| 米脂县| 蒙阴县| 蕲春县| 格尔木市| 察隅县| 界首市| 铜川市| 乌什县| 连云港市| 邹平县| 成都市| 璧山县| 迭部县| 沙田区| 徐汇区| 漳平市| 南陵县| 武冈市| 鸡西市| 忻州市| 五指山市| 吉水县| 武功县| 禹州市| 巴林右旗| 托里县|