時(shí)間:2024-03-26 14:36作者:下載吧人氣:49
MongoDB中仲裁節(jié)點(diǎn)起著非常重要的作用,又稱作voter節(jié)點(diǎn)。它類(lèi)似于復(fù)制集中所有節(jié)點(diǎn)都知道咋干的超級(jí)節(jié)點(diǎn)。在這個(gè)特殊的節(jié)點(diǎn)中存儲(chǔ)的是復(fù)制集的元數(shù)據(jù),用來(lái)監(jiān)控和跟蹤所有成員的運(yùn)行情況,其中就包括了成員的部署位置、狀態(tài)和姿態(tài)。當(dāng)有成員加入或者退出時(shí),該節(jié)點(diǎn)會(huì)立刻感知并及時(shí)更新成員的狀態(tài),這使得整個(gè)復(fù)制集可以正常工作。
與其他節(jié)點(diǎn)相比,仲裁節(jié)點(diǎn)并不參與任何數(shù)據(jù)復(fù)制操作,它只是管理復(fù)制集中所有成員,像一個(gè)可靠的監(jiān)視者。由于MongoDB中每個(gè)節(jié)點(diǎn)均有一定的延遲問(wèn)題,因此在復(fù)制集狀態(tài)更改時(shí),如果有任何節(jié)點(diǎn)延遲,或者有成員丟失、新成員加入的情況,仲裁節(jié)點(diǎn)就可以投票以決定把所有成員狀態(tài)更改為一致的。
如今,仲裁節(jié)點(diǎn)也被稱為可用性架構(gòu)節(jié)點(diǎn),它也時(shí)常被添加到復(fù)制集中,因?yàn)樗軌蚋纳茝?fù)制集的可用性。它主要改進(jìn)了復(fù)制集在主節(jié)點(diǎn)失效時(shí)的服務(wù)器可用性,減少了服務(wù)缺失時(shí)間,并可以在節(jié)點(diǎn)丟失時(shí)投票使服務(wù)繼續(xù)運(yùn)行。最重要的是,增加仲裁節(jié)點(diǎn)在不經(jīng)過(guò)完整恢復(fù)的情況下可以恢復(fù)復(fù)制集的運(yùn)行狀態(tài),從而更好的保證數(shù)據(jù)庫(kù)的可用性。
在操作仲裁節(jié)點(diǎn)時(shí),建議使用以下shell命令來(lái)添加仲裁節(jié)點(diǎn):
rs.addArb("hostname", port)
此外,仲裁節(jié)點(diǎn)在mongo3.4也可以使用rs.initiate()方法來(lái)構(gòu)建:
var config={
_id: "aname", members: [
{*host: "host1name", priority: 0, votes:1, arbiterOnly: true*, *}, {host: "host2name", priority: 0, votes:1},
{host: "host3name", priority: 0, votes:1} ]
}rs.initiate(config)
總的來(lái)說(shuō),MongoDB中的仲裁節(jié)點(diǎn)在保障數(shù)據(jù)庫(kù)的可用性和可靠性方面發(fā)揮著很大的作用,是數(shù)據(jù)庫(kù)復(fù)制集的重要構(gòu)成部分。如果在構(gòu)建復(fù)制集的時(shí)候沒(méi)有添加仲裁節(jié)點(diǎn),在數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題時(shí),將無(wú)法及時(shí)恢復(fù)原始狀態(tài),影響數(shù)據(jù)庫(kù)的正常使用。
網(wǎng)友評(píng)論