consul

agent---?An agent is the long running daemon on every member of the Consul cluster座慰。agent能以client和server模式運(yùn)行,可以簡(jiǎn)稱為客戶端和服務(wù)器懂扼。

client---是一個(gè)將所有的RPC轉(zhuǎn)發(fā)到服務(wù)器的代理。客戶端唯一的交互就是參與LAN的八卦池?(LAN gossip pool)。

server---參與Raft仲裁惰说,維護(hù)集群狀態(tài),響應(yīng)RPC查詢缘回,與其他數(shù)據(jù)中心交換WAN信息助被,以及將查詢轉(zhuǎn)發(fā)給Leader或remote datacenters.

datacenter---數(shù)據(jù)中心定義為專用,低延遲和高帶寬的網(wǎng)絡(luò)環(huán)境切诀。保存數(shù)據(jù)。

Consensus---Consul使用共識(shí)協(xié)議?來(lái)提供一致性(由CAP定義)搔弄。共識(shí)協(xié)議基于?“Raft:尋找可理解的共識(shí)算法”幅虑。

LAN Gossip---?指包含全部位于同一局域網(wǎng)或數(shù)據(jù)中心的節(jié)點(diǎn)的LAN gossip pool。

WAN Gossip---Refers to the WAN gossip pool which contains only servers. 這些服務(wù)器主要位于不同的數(shù)據(jù)中心顾犹,通常通過(guò)互聯(lián)網(wǎng)或廣域網(wǎng)進(jìn)行通信倒庵。

RPC---遠(yuǎn)程過(guò)程調(diào)用。這是一個(gè)請(qǐng)求/響應(yīng)機(jī)制炫刷,允許客戶端發(fā)出服務(wù)器請(qǐng)求擎宝。


在每個(gè)數(shù)據(jù)中心內(nèi),我們都有客戶端和服務(wù)器的混合體浑玛。預(yù)計(jì)有三到五臺(tái)服務(wù)器绍申。這在故障情況下的可用性和性能之間取得了平衡,因?yàn)殡S著更多機(jī)器的添加顾彰,共識(shí)逐漸變慢极阅。但是,客戶數(shù)量沒(méi)有限制涨享,而且可以輕松擴(kuò)展到數(shù)千或數(shù)萬(wàn)個(gè)客戶筋搏。

數(shù)據(jù)中心內(nèi)的所有節(jié)點(diǎn)都參與到八卦協(xié)議中。這意味著有一個(gè)八卦池包含給定數(shù)據(jù)中心的所有節(jié)點(diǎn)厕隧。這有幾個(gè)目的:首先奔脐,不需要為客戶端配置服務(wù)器的地址;?發(fā)現(xiàn)是自動(dòng)完成的俄周。其次,檢測(cè)節(jié)點(diǎn)故障的工作不是放在服務(wù)器上髓迎,而是分布式的峦朗。這使得故障檢測(cè)比天真的心跳方案更具可擴(kuò)展性。第三竖般,它被用作消息層來(lái)通知重要事件甚垦,例如領(lǐng)導(dǎo)者選舉發(fā)生。

每個(gè)數(shù)據(jù)中心中的服務(wù)器都是單個(gè)Raft對(duì)等設(shè)備的一部分涣雕。這意味著他們一起選擇一個(gè)單獨(dú)的領(lǐng)導(dǎo)者艰亮,一個(gè)具有額外職責(zé)的選定服務(wù)器(Leader)。當(dāng)非Leader的服務(wù)器收到RPC請(qǐng)求時(shí)挣郭,它會(huì)將其轉(zhuǎn)發(fā)給集群Leader迄埃,Leader處理后會(huì)將結(jié)果Replication到各個(gè)節(jié)點(diǎn)上。

服務(wù)器節(jié)點(diǎn)也作為WAN八卦池的一部分運(yùn)行兑障。此池與LAN池不同侄非,因?yàn)樗槍?duì)互聯(lián)網(wǎng)的更高延遲進(jìn)行了優(yōu)化,并且預(yù)計(jì)僅包含其他Consul服務(wù)器節(jié)點(diǎn)流译。這個(gè)池的目的是讓數(shù)據(jù)中心以低觸摸的方式發(fā)現(xiàn)彼此逞怨。在線添加新數(shù)據(jù)中心就像加入現(xiàn)有的WAN八卦池一樣簡(jiǎn)單。因?yàn)檫@些服務(wù)器都在這個(gè)池中運(yùn)行福澡,所以它也支持跨數(shù)據(jù)中心的請(qǐng)求叠赦。當(dāng)服務(wù)器收到對(duì)不同數(shù)據(jù)中心的請(qǐng)求時(shí),會(huì)將其轉(zhuǎn)發(fā)到正確數(shù)據(jù)中心中的隨機(jī)服務(wù)器革砸。該服務(wù)器可能會(huì)轉(zhuǎn)發(fā)給當(dāng)?shù)仡I(lǐng)導(dǎo)除秀。

通常,數(shù)據(jù)不會(huì)在不同的Consul數(shù)據(jù)中心之間復(fù)制算利。當(dāng)對(duì)另一個(gè)數(shù)據(jù)中心中的資源發(fā)出請(qǐng)求時(shí)册踩,本地Consul服務(wù)器將RPC請(qǐng)求轉(zhuǎn)發(fā)給該資源的遠(yuǎn)程Consul服務(wù)器并返回結(jié)果。如果遠(yuǎn)程數(shù)據(jù)中心不可用效拭,那么這些資源也將不可用暂吉,但這不會(huì)影響本地?cái)?shù)據(jù)中心。在某些特殊情況下缎患,可以復(fù)制有限的數(shù)據(jù)子集借笙,例如Consul的內(nèi)置?ACL復(fù)制功能或外部工具(如consul-replicate)

共識(shí)協(xié)議:consul是通過(guò)raft來(lái)保持強(qiáng)一致性较锡。通過(guò)raft選舉出Leader业稼,日志條目的復(fù)制來(lái)保證數(shù)據(jù)一致。

只有Consul服務(wù)器節(jié)點(diǎn)參與Raft并且是對(duì)等設(shè)置的一部分蚂蕴。所有client都將請(qǐng)求轉(zhuǎn)發(fā)給server 這種設(shè)計(jì)的部分原因是低散,隨著更多成員被添加到對(duì)等設(shè)置中俯邓,法定數(shù)量的大小也會(huì)增加。這會(huì)引起性能問(wèn)題熔号,因?yàn)槟赡軙?huì)等待數(shù)百臺(tái)機(jī)器同意進(jìn)入而不是少數(shù)幾臺(tái)機(jī)器稽鞭。

不理解: LAN和WAN的八卦協(xié)議中的故障檢測(cè)功能

Gossip協(xié)議:

領(lǐng)事使用兩個(gè)不同的八卦池。我們將每個(gè)池分別稱為L(zhǎng)AN或WAN池引镊。Consul運(yùn)營(yíng)的每個(gè)數(shù)據(jù)中心都有一個(gè)包含數(shù)據(jù)中心所有成員(包括客戶端和服務(wù)器)的LAN八卦池朦蕴。LAN池用于幾個(gè)目的。成員資格信息允許客戶自動(dòng)發(fā)現(xiàn)服務(wù)器弟头,從而減少所需的配置數(shù)量吩抓。分布式故障檢測(cè)允許整個(gè)集群共享故障檢測(cè)工作,而不是集中在幾臺(tái)服務(wù)器上赴恨。最后疹娶,八卦游戲池允許可靠和快速的事件廣播,比如領(lǐng)袖選舉伦连。

WAN池是全球唯一的雨饺,因?yàn)闊o(wú)論數(shù)據(jù)中心如何,所有服務(wù)器都應(yīng)該參與WAN池惑淳。WAN池提供的成員資格信息允許服務(wù)器執(zhí)行跨數(shù)據(jù)中心請(qǐng)求额港。集成的故障檢測(cè)功能使Consul能夠正常處理丟失連接的整個(gè)數(shù)據(jù)中心,或僅處理遠(yuǎn)程數(shù)據(jù)中心內(nèi)的單個(gè)服務(wù)器歧焦。

信號(hào)量(分布式鎖)是基于session機(jī)制的锹安。

? ? ? ?Consul提供的合約,發(fā)生如下任一情況倚舀,session都會(huì)被銷毀:

? ? ? ??節(jié)點(diǎn)銷毀

? ? ? ??任何的健康檢查,注銷

? ? ? ??任何健康檢查都要進(jìn)入Critical狀態(tài)

? ? ? ??會(huì)話被顯式銷毀

? ? ? ??TTL到期忍宋,如果適用

當(dāng)session失效后痕貌,會(huì)被銷毀,不能再使用糠排。如果使用release舵稠,任何與該session相關(guān)的鎖都會(huì)被釋放,并且持有該鎖的key的ModifyIndex也會(huì)遞增入宦。如果使用了Delete哺徊,持有該鎖的KEY將會(huì)被刪除。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乾闰,一起剝皮案震驚了整個(gè)濱河市落追,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涯肩,老刑警劉巖轿钠,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巢钓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡疗垛,警方通過(guò)查閱死者的電腦和手機(jī)症汹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贷腕,“玉大人背镇,你說(shuō)我怎么就攤上這事≡笊眩” “怎么了瞒斩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)诡壁。 經(jīng)常有香客問(wèn)我济瓢,道長(zhǎng),這世上最難降的妖魔是什么妹卿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任旺矾,我火速辦了婚禮,結(jié)果婚禮上夺克,老公的妹妹穿的比我還像新娘箕宙。我一直安慰自己,他們只是感情好铺纽,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布柬帕。 她就那樣靜靜地躺著,像睡著了一般狡门。 火紅的嫁衣襯著肌膚如雪陷寝。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,084評(píng)論 1 291
  • 那天其馏,我揣著相機(jī)與錄音凤跑,去河邊找鬼。 笑死叛复,一個(gè)胖子當(dāng)著我的面吹牛仔引,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播褐奥,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼碴开,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼舱沧!你這毒婦竟也來(lái)了摩渺?” 一聲冷哼從身側(cè)響起掰吕,我...
    開(kāi)封第一講書(shū)人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎呜笑,沒(méi)想到半個(gè)月后义桂,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體找筝,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年慷吊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了袖裕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溉瓶,死狀恐怖急鳄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情堰酿,我是刑警寧澤疾宏,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站触创,受9級(jí)特大地震影響坎藐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哼绑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一岩馍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抖韩,春花似錦蛀恩、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至席揽,卻和暖如春顽馋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背幌羞。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工寸谜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人新翎。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像住练,于是被迫代替她去往敵國(guó)和親地啰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 由于文章太長(zhǎng)讲逛,簡(jiǎn)書(shū)放不下亏吝,完整文檔見(jiàn)Consul文檔。 一盏混、安裝 Consul Consul 的安裝很簡(jiǎn)單蔚鸥,安裝 ...
    FlySheep_ly閱讀 10,096評(píng)論 1 13
  • https://deepzz.com/post/the-consul-of-discovery-and-confi...
    deepzz閱讀 16,579評(píng)論 7 17
  • 上一篇提到惜论,項(xiàng)目用的分布式服務(wù)發(fā)現(xiàn)與注冊(cè)組件是consul,這篇文章主要來(lái)講下consul組件在項(xiàng)目中的應(yīng)用以及相...
    aoho閱讀 11,330評(píng)論 1 13
  • [轉(zhuǎn)] 1. 什么是consul止喷? 是一個(gè)服務(wù)管理軟件馆类。支持多數(shù)據(jù)中心下,分布式高可用的弹谁,服務(wù)發(fā)現(xiàn)和配置共享乾巧。co...
    baboon閱讀 3,037評(píng)論 0 7
  • 今天又沒(méi)壓抑住心魔。 可能是太閑了预愤,學(xué)習(xí)之余還是要玩會(huì)游戲來(lái)放松沟于,并且轉(zhuǎn)移下注意力。 149.7 day0
    Little_L閱讀 67評(píng)論 0 0