您好,登錄后才能下訂單哦!
本篇內容介紹了“Docker高可用配置中心Etcd使用場景有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一:簡介
Etcd是一個開源的分布式的鍵值存儲庫,用于配置共享和服務發現。通常以集群的形式進行部署,各工作節點會選出一個leader節點主導工作。通常用于存儲數據庫的連接配置,緩存配置,通用配置信息等。
Etcd的特點有:
1. 簡單:基于HTTP+JSON的API,用curl命令就可以輕松使用
2. 安全: 可選SSL客戶認證機制
3. 快速:每個實例每秒支持一千次寫操作
4. 可信:使用Raft算法充分實現了分布式
Etcd主要解決的是分布式系統中數據一致性的問題,而分布式系統中的數據分為控制數據和應用數據。Etcd處理的數據默認為控制數據,對于應用數據,它只推薦處理數據量很小但訪問頻繁的情況。
二:Etcd使用場景
1. 服務發現
在同一個分布式集群中的進程或服務,互相感知并建立連接,這就是服務發現。從本質上說服務發現就是要了解集群中是否有進程在監聽UDP或TCP端口,并通過對應的字符串信息進行查找和連接。 解決服務發現的問題,需要以下幾個方面:
a.一個強一致性,高可用的服務存儲目錄
b.一種注冊服務和監控服務健康狀態的機制
c.一種查找和連接服務的機制
1.消息發布與訂閱
在分布式系統中,最適合的組件間通信方式是消息發布和訂閱機制。具體而言,即構建一個配置共享中心,數據提供者在這個配置中心發布消息,而消息使用者則訂閱他們相關的主題,一旦相關主題有消息發布,就會實時通知訂閱者。通過這種方式可以實現分布式系統配置的集中式管理和實時動態更新。
2.負載均衡
3.分布式通知與協調
使用etcd中的Watcher機制,通過注冊與異步通知機制,實現分布式環境下不同系統之間的通知與協調,從而對數據變更進行實時處理。
a. 通過etcd進行低耦合的心跳檢測
檢測系統和被檢測系統通過etcd上某個目錄關聯而非直接關聯起來,這樣可以大大減少系統的耦合性。
b.通過etcd完成系統調度
管理人員在控制臺做一些操作,實際上只需要修改etcd上某些目錄節點的狀態,etcd就會自動把這些變化通知給注冊了Watcher的推送系統客戶端,推送系統再做出相應的推送任務。
c.通過etcd完成工作匯報
大部分類似的任務分發系統會在子任務七朵花,到etcd來注冊一個臨時工作目錄,并且定時將自己的進度進行匯報(即將進度寫入到這個臨時目錄),這樣任務管理者就能夠實時知道任務進度。
4.分布式鎖與競選
a.保持獨占鎖
b.控制時序鎖
使用分布式鎖可以完成Leader競選,對于一些長時間的CPU計算或者使用I/O操作,只需要競選出的Leader計算或處理一次,再把結果復制給其他Follower即可,從而避免重復勞動,節省計算資源。
5.分布式隊列
6.集群監控
三:Etcd架構
Etcd中涉及的術語有:
1. Raft:etcd所采用的保證分布式系統強一致性的算法
2. Node:一個Raft狀態機實例
3. Member:一個etcd實例,管理著一個Node,可以為客戶端請求提供服務
4. Cluster:由多個Member構成的可以協同工作的etcd集群
5. Peer:對同一個etcd集群中另外一個Member的稱呼
6. Client: 向etcd集群發送HTTP請求的客戶端
7. WAL:預寫式日志,是etcd用于持久化存儲的日志格式
8. Snapshot : etcd防止WAL文件過多而設置的快照,存儲etcd數據狀態
9. Proxy:etcd的一種模式,為etcd集群提供反向代理服務
10.Leader: Raft算法中通過競選而產生的處理所有數據提交的節點
11.Follower:競選失敗的節點作為Raft中的從屬節點,為算法提供強一致性保證
12.Candidate:Follower超過一定時間接收不到Leader的心跳時,轉變為Candidate開始Leader競選
13.Term:某個節點成為Leader到下一次競選開始的時間周期,成為一個Term
14. Index:數據項編號,Raft中通過Term和Index來定位數據。
“Docker高可用配置中心Etcd使用場景有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。