etcd注冊服務


etcd作為最簡單(輕量,精簡)的kv服務。etcd可以應用很多方面,但是它有一個特點,etcd只是基礎,需要你自己實現功能。它不像其其它組件開箱即用,也正是如此,它足夠簡單精巧。

  回到主題,etcd里面並沒有服務注冊發現的功能,所以要自己開發。

  推薦一篇介紹文章 https://blog.csdn.net/bbwangj/article/details/82584988

 etcd的服務注冊發現,主要就是用了etcd中KV存儲接TTL

  基本做法:存儲Key(一般是系統唯一的)V(服務配置),存儲時要設置一個TTL周期。

                   然后定時刷新該Key(etcd中是一個指令,發送租約的ID)。

etcd沒有consul里面的功能,consul會主動調用服務接口查詢,檢測監控狀態。

因此在etcd則采用上面租約的方式,類似心跳上報,超時就在etcd中取消了。

 

最后我封裝了一個庫etcd.Provider.Service。里面采用了上面的方式

一個服務存儲

Key:/系統/Services/srvname/srvid

value:ServiceEntry實體的json序列化,包含了服務的信息

注意:srvid必須在你的服務中配置唯一,同時決定了整個key的唯一

gti地址:https://github.com/jinyuttt/etcd.Provider.Service.git

nuget:etcd.Provider.Service

 

最后提一句:etcd中訂閱發布是利用watch功能;負載均衡就是利用租約存儲功能;分布式通知與協調是利用watch功能;

             分布式鎖是利用lock功能;隊列也是存儲和watch功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM