【部落格399】etcd的應用場景

想成為大程式設計師的小程式設計師發表於2020-10-31

內容:記錄etcd的應用場景學習

etcd最常用於構建:高可用中心

etcd的特點:

1、簡單:基於http+json的api,用curl命令就可以使用

2、安全:可選擇ssl安全認證機制

3、快速:每個例項可以支援每秒1000次寫操作

4、可信:基於raft演算法,實現了分散式

etcd應用場景:

1、服務發現:
使得同一個部分是叢集中的程式或者服務能夠互相感知,並發現彼此,建立連線。

# 需要的條件:

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

一種註冊和健康服務狀態的機制

一種查詢和連線服務的機制

# 如何使用etcd來做服務實現:
在etcd中註冊某個服務的名字的目錄,該目錄下儲存可用的後端節點;需要呼叫服務的呼叫方查詢
該目錄下的節點資訊,就可以呼叫服務


2、訊息釋出與訂閱:
利用etcd來儲存訊息,並且需要訂閱的物件可以通過etcd的watch機制來訂閱內容

3、負載均衡:
將叢集需要維護的資訊儲存在etcd中,使得需要讀取時可以對多個etcd節點發起讀請求,
使得流量被均攤到多個etcd節點上,進而負載均衡,避免單節點流量過大

4、分散式通知與協調:
通過在目錄中進行註冊需要通知的資訊,被通知物件使用watch機制來獲取通知

#比如:

利用etcd做低耦合的心跳檢測

通過etcd完成任務排程

通過etcd完成任務彙報

5、分散式鎖與競選:

#鎖與競選有兩種模式:保持獨佔和控制時序

保持獨佔:etcd提供了CAS的api,可以保證多個節點同時建立目錄時,只有一個成功,即相當於
        只有一個能獲得鎖

控制時序:etcd提供了時序api,使用api時,會對客戶端生成時序編號,進而使得客戶端按照
        時序編號進行排隊

6、叢集健康監控

通過watch某目錄,當節點消失或者變更時,watch機制會第一時間通知你。節點設定ttl key,
每30秒需要與etcd彙報心跳資訊,代表節點仍然存活,否則代表節點當機

相關文章