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