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