溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker高可用配置中心Etcd使用場景有哪些

發(fā)布時間:2021-12-14 11:56:21 來源:億速云 閱讀:268 作者:iii 欄目:服務器

本篇內(nèi)容介紹了“Docker高可用配置中心Etcd使用場景有哪些”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

一:簡介

Etcd是一個開源的分布式的鍵值存儲庫,用于配置共享和服務發(fā)現(xiàn)。通常以集群的形式進行部署,各工作節(jié)點會選出一個leader節(jié)點主導工作。通常用于存儲數(shù)據(jù)庫的連接配置,緩存配置,通用配置信息等。

Etcd的特點有:

1. 簡單:基于HTTP+JSON的API,用curl命令就可以輕松使用

2. 安全: 可選SSL客戶認證機制

3. 快速:每個實例每秒支持一千次寫操作

4. 可信:使用Raft算法充分實現(xiàn)了分布式

Etcd主要解決的是分布式系統(tǒng)中數(shù)據(jù)一致性的問題,而分布式系統(tǒng)中的數(shù)據(jù)分為控制數(shù)據(jù)和應用數(shù)據(jù)。Etcd處理的數(shù)據(jù)默認為控制數(shù)據(jù),對于應用數(shù)據(jù),它只推薦處理數(shù)據(jù)量很小但訪問頻繁的情況。

二:Etcd使用場景

1. 服務發(fā)現(xiàn)

在同一個分布式集群中的進程或服務,互相感知并建立連接,這就是服務發(fā)現(xiàn)。從本質(zhì)上說服務發(fā)現(xiàn)就是要了解集群中是否有進程在監(jiān)聽UDP或TCP端口,并通過對應的字符串信息進行查找和連接。 解決服務發(fā)現(xiàn)的問題,需要以下幾個方面:

a.一個強一致性,高可用的服務存儲目錄

b.一種注冊服務和監(jiān)控服務健康狀態(tài)的機制

c.一種查找和連接服務的機制


  


1.消息發(fā)布與訂閱

在分布式系統(tǒng)中,最適合的組件間通信方式是消息發(fā)布和訂閱機制。具體而言,即構(gòu)建一個配置共享中心,數(shù)據(jù)提供者在這個配置中心發(fā)布消息,而消息使用者則訂閱他們相關(guān)的主題,一旦相關(guān)主題有消息發(fā)布,就會實時通知訂閱者。通過這種方式可以實現(xiàn)分布式系統(tǒng)配置的集中式管理和實時動態(tài)更新。

2.負載均衡

3.分布式通知與協(xié)調(diào)
使用etcd中的Watcher機制,通過注冊與異步通知機制,實現(xiàn)分布式環(huán)境下不同系統(tǒng)之間的通知與協(xié)調(diào),從而對數(shù)據(jù)變更進行實時處理。

a. 通過etcd進行低耦合的心跳檢測

檢測系統(tǒng)和被檢測系統(tǒng)通過etcd上某個目錄關(guān)聯(lián)而非直接關(guān)聯(lián)起來,這樣可以大大減少系統(tǒng)的耦合性。

b.通過etcd完成系統(tǒng)調(diào)度

管理人員在控制臺做一些操作,實際上只需要修改etcd上某些目錄節(jié)點的狀態(tài),etcd就會自動把這些變化通知給注冊了Watcher的推送系統(tǒng)客戶端,推送系統(tǒng)再做出相應的推送任務。

c.通過etcd完成工作匯報

大部分類似的任務分發(fā)系統(tǒng)會在子任務七朵花,到etcd來注冊一個臨時工作目錄,并且定時將自己的進度進行匯報(即將進度寫入到這個臨時目錄),這樣任務管理者就能夠?qū)崟r知道任務進度。

4.分布式鎖與競選

a.保持獨占鎖

b.控制時序鎖

使用分布式鎖可以完成Leader競選,對于一些長時間的CPU計算或者使用I/O操作,只需要競選出的Leader計算或處理一次,再把結(jié)果復制給其他Follower即可,從而避免重復勞動,節(jié)省計算資源。

5.分布式隊列

6.集群監(jiān)控

 
三:Etcd架構(gòu)

Docker高可用配置中心Etcd使用場景有哪些

Etcd中涉及的術(shù)語有:

1. Raft:etcd所采用的保證分布式系統(tǒng)強一致性的算法

2. Node:一個Raft狀態(tài)機實例

3. Member:一個etcd實例,管理著一個Node,可以為客戶端請求提供服務

4. Cluster:由多個Member構(gòu)成的可以協(xié)同工作的etcd集群

5. Peer:對同一個etcd集群中另外一個Member的稱呼

6. Client: 向etcd集群發(fā)送HTTP請求的客戶端

7. WAL:預寫式日志,是etcd用于持久化存儲的日志格式

8. Snapshot : etcd防止WAL文件過多而設置的快照,存儲etcd數(shù)據(jù)狀態(tài)

9. Proxy:etcd的一種模式,為etcd集群提供反向代理服務

10.Leader: Raft算法中通過競選而產(chǎn)生的處理所有數(shù)據(jù)提交的節(jié)點

11.Follower:競選失敗的節(jié)點作為Raft中的從屬節(jié)點,為算法提供強一致性保證

12.Candidate:Follower超過一定時間接收不到Leader的心跳時,轉(zhuǎn)變?yōu)镃andidate開始Leader競選

13.Term:某個節(jié)點成為Leader到下一次競選開始的時間周期,成為一個Term
14. Index:數(shù)據(jù)項編號,Raft中通過Term和Index來定位數(shù)據(jù)。

“Docker高可用配置中心Etcd使用場景有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI