微服務元件 consul

2021-09-24 23:13:02 字數 1375 閱讀 2363

consul是乙個用來實現分布式系統的服務發現與配置的開元工具。主要由:

consul組成:

什麼是服務註冊?

乙個服務將其位置資訊在「中心註冊節點」註冊的過程。該服務一般會將它的主機ip位址以及埠號進行註冊,有時也會有服務訪問的認證資訊,使用協議,版本號,以及關於環境的一些細節資訊。

什麼是服務發現?

服務發現可以讓乙個應用或者元件發現其執行環境以及其它應用或元件的資訊。使用者配置乙個服務發現工具就可以將實際容器跟執行配置分離開。常見配置資訊包括:ip、埠號、名稱等。

1.使用 raft 演算法來保證一致性,比poxes演算法更直接。zookeeper採用的時poxes演算法。

raft大概將整個過程分為三個階段,leader election,log replication和commit(safety)。

(選舉、日誌複製、提交)

每個server處於三個狀態:leader,follower,candidate。(領導、從屬、候選人)正常情況下,所有server中只有乙個是leader,其它的都是follower。server之間通過rpc訊息通訊。follower不會主動發起rpc訊息。leader和candidate(選主的時候)會主動發起rpc訊息。

參考文章:

資料中心到所有節點都使用的時候gossip協議。這就意味著有乙個gossip池,其中包含給定資料中心所有的節點。客戶端不需要去配置伺服器位址資訊,發現服務會自動完成;檢測故障節點的工作不是放在伺服器端,而是分布式的;資料中心被用作訊息層,以便在選擇leader這種重要的事情發生的時候做通知。

gossip協議(流言傳播協議)

consul使用gossip協議來管理成員和集群廣播訊息,這些都是通過使用serf庫的。serf所使用的gossip協議基於swim:可伸縮的弱一致的感染模式的過程組成員協議」,並做了一些細微的修改。

consul中的gossip

consul使用了兩個不同的gossip池,稱為lan池和wan池。每個資料中心都有乙個lan池,其中包含資料中心的所有成員,包括伺服器端和客戶端。lan的成員客戶端可以自動發現伺服器,減少所需配置的數量。分布式故障檢測可以讓故障檢測的工具被整個集群共享,gossip池可以快速可靠的將事件廣播,比如選擇leader。

wan池是全域性唯一的,所有的伺服器都應該在wan池中,而不關心資料中心在**。wan池提供的成員資訊允許伺服器執行跨資料中心請求。整合的故障檢測功能使consul能夠優雅地處理整個資料中心或者遠端資料中心的乙個伺服器失聯。

consensus 協議

consul通過consensus協議來提供一致性(由cap定義)。consensus協議是基於raft——查詢可理解的一致性演算法。

微服務元件

好記憶不如爛筆頭,能記下點東西,就記下點,有時間拿出來看看,也會發覺不一樣的感受.微服務可謂是當下最火爆的企業級開發應用模式,那麼具體都要用到哪些技術吶,概括如下圖所示 當下最新的微服務元件,無出其右,基本就是這些。熟悉這些體系中的各個元件,對於微服務的實踐有很重要的指導作用。其中 最主要關注的是 ...

Springcloud微服務 元件三Ribbon

繼上兩篇接著說我們將服務註冊到eureka註冊中心後,那麼服務之間的呼叫是怎麼完成的?我們的消費者想要去註冊中心上消費我們的服務這裡就需要使用到springcloud 的元件ribbon ribbon是乙個基於http和tcp的客戶端負載均衡器。當使用ribbon對服務進行訪問的時候,它會實現從eu...

zuul閘道器 微服務元件之zuul閘道器

導 語 閘道器是微服務架構的重要組成部分,有著不可或缺的功能。引入 在沒有使用閘道器的時候,我們的微服務架構應該是這樣的,使用者通過nginx進入a服務,a服務對b c d都要進行呼叫,大家認為這樣的服務設計有沒有問題呢?冗餘 在a服務對其他服務進行呼叫的時候,我們需要對每乙個服務進行許可權控制,這...