Elasticsearch的分布式架構(gòu)的好處:
1. 天生支持存儲(chǔ)的水平擴(kuò)容,支持PB級(jí)數(shù)據(jù)。
2. 提高系統(tǒng)的可用性,部分節(jié)點(diǎn)停止服務(wù),整個(gè)集群的服務(wù)不受影響。Elasticsearch的分布式架構(gòu)中不同的集群通過不同的名字來區(qū)分,默認(rèn)名字“elasticsearch”可以通過配置文件修改,或者在命令行中
-E cluster.name=your cluster name進(jìn)行設(shè)定。
節(jié)點(diǎn)是一個(gè)Elasticsearch的實(shí)例,其本質(zhì)上就是一個(gè)JAVA進(jìn)程,一臺(tái)機(jī)器可以運(yùn)行多個(gè)Elasticsearch進(jìn)程,但是生產(chǎn)環(huán)境一般建議一臺(tái)機(jī)器上就運(yùn)行一個(gè)Elasticsearch實(shí)例。
每一個(gè)節(jié)點(diǎn)都有名字,通過配置文件配置,或者啟動(dòng)時(shí)候通過
-E node.name=your node name指定。
每一個(gè)節(jié)點(diǎn)在啟動(dòng)之后,會(huì)分配一個(gè)UID,保存在data目錄下。
處理請(qǐng)求的節(jié)點(diǎn),叫Coordinating Node。路由請(qǐng)求到正確的節(jié)點(diǎn),例如創(chuàng)建索引的請(qǐng)求,需要路由到Master節(jié)點(diǎn)。所有節(jié)點(diǎn)默認(rèn)都是Coordinating Node,在生產(chǎn)環(huán)境中建議通過將其他類型設(shè)置成False,使其成為Dedicated Coordinating Node。
可以保存數(shù)據(jù)的節(jié)點(diǎn),叫做Data Node。節(jié)點(diǎn)啟動(dòng)后,默認(rèn)就是數(shù)據(jù)節(jié)點(diǎn)??梢栽O(shè)置node.data:false禁止。
Data Node的職責(zé):保存分片數(shù)據(jù)。在數(shù)據(jù)擴(kuò)展上起到了至關(guān)重要的作用(由Master Node決定如何把分片分發(fā)到數(shù)據(jù)節(jié)點(diǎn)上)。通過增加數(shù)據(jù)節(jié)點(diǎn)可以解決數(shù)據(jù)水平擴(kuò)展和解決數(shù)據(jù)單點(diǎn)問題。
Master Node的職責(zé):處理創(chuàng)建,刪除索引等請(qǐng)求/決定分片被分配到哪個(gè)節(jié)點(diǎn)/負(fù)責(zé)索引的創(chuàng)建與刪除;維護(hù)并且更新Cluster State。
Master Node的最佳實(shí)踐:Master節(jié)點(diǎn)非常重要,在部署上需要考慮解決單點(diǎn)的問題,為一個(gè)集群設(shè)置多個(gè)Master 節(jié)點(diǎn)/每個(gè)節(jié)點(diǎn)只承擔(dān) Master的單一角色。
一個(gè)集群,支持配置多個(gè)Master Eligible節(jié)點(diǎn)。這些節(jié)點(diǎn)可以在必要時(shí)(如Master節(jié)點(diǎn)出現(xiàn)故障,網(wǎng)絡(luò)故障時(shí))參與選主流程,成為Master節(jié)點(diǎn)。
每個(gè)節(jié)點(diǎn)啟動(dòng)后,默認(rèn)就是一個(gè)Master eligible節(jié)點(diǎn)
可以設(shè)置node.master: false 禁止
當(dāng)集群內(nèi)第一個(gè)Master eligible節(jié)點(diǎn)啟動(dòng)時(shí)候,它會(huì)將自己選舉成Master節(jié)點(diǎn)。
集群狀態(tài)信息(Cluster State),維護(hù)了一個(gè)集群中,必要的信息。比如所有的節(jié)點(diǎn)信息、所有的索引和其相關(guān)的Mapping 與Setting 信息、分片的路由信息。
在每個(gè)節(jié)點(diǎn)上都保存了集群的狀態(tài)信息,但是只有Master節(jié)點(diǎn)才能修改集群的狀態(tài)信息,并負(fù)責(zé)同步給其他節(jié)點(diǎn),因?yàn)槿我夤?jié)點(diǎn)都能修改信息會(huì)導(dǎo)致Cluster State信息的不一致。
在集群當(dāng)中Master Eligible 節(jié)點(diǎn)會(huì)互相Ping 對(duì)方,Node ld低的會(huì)成為被選舉的節(jié)點(diǎn)。
當(dāng)其他節(jié)點(diǎn)加入集群,它不承擔(dān)Master節(jié)點(diǎn)的角色,一旦發(fā)現(xiàn)被選中的主節(jié)點(diǎn)丟失,就會(huì)選舉出新的Master節(jié)點(diǎn)。
Split-Brain,分布式系統(tǒng)的經(jīng)典網(wǎng)絡(luò)問題,當(dāng)出現(xiàn)網(wǎng)絡(luò)問題,一個(gè)節(jié)點(diǎn)和其他節(jié)點(diǎn)無法連接;Node 2和Node 3會(huì)重新選舉Master,Node 1自己還是作為Master,組成一個(gè)集群,同時(shí)更新Cluster State,導(dǎo)致2個(gè)master,維護(hù)不同的 cluster state,當(dāng)網(wǎng)絡(luò)恢復(fù)時(shí),無法選擇正確恢復(fù)。
限定一個(gè)選舉條件,設(shè)置 quorum(仲裁),只有在Master eligible 節(jié)點(diǎn)數(shù)大于quorum時(shí),才能進(jìn)行選舉;Quorum = (master節(jié)點(diǎn)總數(shù)/2)+1。
當(dāng)3個(gè)master eligible時(shí),設(shè)置discovery.zen.minimum_master_nodes為2,即可避免腦裂。
從Elasticsearch7.0版本開始,無需這個(gè)配置
移除minimum_master_nodes參數(shù),讓Elasticsearch自己選擇可以形成仲裁的節(jié)點(diǎn)。典型的主節(jié)點(diǎn)選舉現(xiàn)在只需要很短的時(shí)間就可以完成。集群的伸縮變得更安全、更容易,并且可能造成丟失數(shù)據(jù)的系統(tǒng)配置選項(xiàng)更少了。節(jié)點(diǎn)更清楚地記錄它們的狀態(tài),有助于診斷為什么它們不能加入集群或?yàn)槭裁礋o法選舉出主節(jié)點(diǎn)。
—個(gè)節(jié)點(diǎn)默認(rèn)情況下是一個(gè)Master eligible,data and ingest node:
更多精彩干貨分享
點(diǎn)擊下方名片關(guān)注
IT那活兒
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/129772.html
摘要:摘要目前是最流行的開源分布式搜索引擎系統(tǒng),其使用作為單機(jī)存儲(chǔ)引擎并提供強(qiáng)大的搜索查詢能力。前言分布式一致性原理剖析系列將會(huì)對(duì)的分布式一致性原理進(jìn)行詳細(xì)的剖析,介紹其實(shí)現(xiàn)方式原理以及其存在的問題等基于版本。相當(dāng)于一次正常情況的新節(jié)點(diǎn)加入。 摘要: ES目前是最流行的開源分布式搜索引擎系統(tǒng),其使用Lucene作為單機(jī)存儲(chǔ)引擎并提供強(qiáng)大的搜索查詢能力。學(xué)習(xí)其搜索原理,則必須了解Lucene,...
摘要:摘要目前是最流行的開源分布式搜索引擎系統(tǒng),其使用作為單機(jī)存儲(chǔ)引擎并提供強(qiáng)大的搜索查詢能力。前言分布式一致性原理剖析系列將會(huì)對(duì)的分布式一致性原理進(jìn)行詳細(xì)的剖析,介紹其實(shí)現(xiàn)方式原理以及其存在的問題等基于版本。相當(dāng)于一次正常情況的新節(jié)點(diǎn)加入。 摘要: ES目前是最流行的開源分布式搜索引擎系統(tǒng),其使用Lucene作為單機(jī)存儲(chǔ)引擎并提供強(qiáng)大的搜索查詢能力。學(xué)習(xí)其搜索原理,則必須了解Lucene,...
摘要:本篇文章著重來給大家講一下中的腦裂問題,以及是如果解決腦裂問題的。過半機(jī)制在領(lǐng)導(dǎo)者選舉的過程中,如果某臺(tái)獲得了超過半數(shù)的選票,則此就可以成為了。就是為了防止腦裂。有痛點(diǎn)才有創(chuàng)新,一個(gè)技術(shù)肯定都是為了解決某個(gè)痛點(diǎn)才出現(xiàn)的。 什么是腦裂 腦裂(split-brain)就是大腦分裂,也就是本來一個(gè)大腦被拆分了兩個(gè)或多個(gè)大腦,我們都知道,如果一個(gè)人有多個(gè)大腦,并且相互獨(dú)立的話,那么會(huì)導(dǎo)致人體手...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20