etcd作為最簡單(輕量,精簡)的kv服務。etcd可以應用很多方面,但是它有乙個特點,etcd只是基礎,需要你自己實現功能。它不像其其它元件開箱即用,也正是如此,它足夠簡單精巧。
回到主題,etcd裡面並沒有服務註冊發現的功能,所以要自己開發。
推薦一篇介紹文章
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的唯一
nuget:etcd.provider.service
最後提一句:etcd中訂閱發布是利用watch功能;負載均衡就是利用租約儲存功能;分布式通知與協調是利用watch功能;
分布式鎖是利用lock功能;佇列也是儲存和watch功能。
etcd註冊服務
etcd作為最簡單 輕量,精簡 的kv服務。etcd可以應用很多方面,但是它有乙個特點,etcd只是基礎,需要你自己實現功能。它不像其其它元件開箱即用,也正是如此,它足夠簡單精巧。回到主題,etcd裡面並沒有服務註冊發現的功能,所以要自己開發。推薦一篇介紹文章 etcd的服務註冊發現,主要就是用了e...
用etcd實現服務註冊和發現
系統中實現服務註冊與發現所需的基本功能有 在分布式系統中,如何管理節點間的狀態一直是乙個難題,etcd 是由開發並維護的,它使用 go 語言編寫,並通過raft 一致性演算法處理日誌複製以保證強一致性。etcd像是專門為集群環境的服務發現和註冊而設計,它提供了資料 ttl 失效 資料改變監視 多值 ...
go micro使用etcd作為服務註冊中心
syntax proto3 message getrequest message putresponse service userserver 編譯生成go需要的檔案 定義空結構體,實現介面方法 type userserver struct func c userserver userinfo ct...