一、Consul的基礎介紹
Consul是HashiCorp公司推出的開源工具,用於實現分佈式系統的服務發現與配置。與其他分佈式服務註冊與發現的方案,比如 Airbnb的SmartStack等相比,Consul的方案更“一站式”,內置了服務註冊與發現框 架、分佈一致性協議實現、健康檢查、Key/Value存儲、多數據中心方案,不再需要依賴其他工具(比如ZooKeeper等),使用起來也較 爲簡單。Consul用Golang實現,因此具有天然可移植性(支持Linux、windows和Mac OS X);安裝包僅包含一個可執行文件,方便部署,與Docker等輕量級容器可無縫配合。
關於Consul的更多介紹,比如優點,這裏就不再贅述了,上網一搜就可以隨處找到了。但是,必須貼一個和其他類似軟件的對比:
二、Consul安裝前的理解
Consul Agent有兩種運行模式:Server和Client。這裏的Server和Client只是Consul集羣層面的區分,與搭建在Cluster之上的應用服務無關, 以Server模式運行的Consul Agent節點用於維護Consul集羣的狀態,官方建議每個Consul Cluster至少有3個或以上的運行在Server Mode的Agent,Client節點不限。
Consul支持多數據中心,每個數據中心的Consul Cluster都會在運行於Server模式下的Agent節點中選出一個Leader節點,這個選舉過程通過Consul實現的raft協議保證,多個 Server節點上的Consul數據信息是強一致的。處於Client Mode的Consul Agent節點比較簡單,無狀態,僅僅負責將請求轉發給Server Agent節點。
這裏我們會演示兩種情況的安裝:一種單節點部署,二種集羣部署,由簡單到複雜的部署會更容易理解。
三、Consul正式安裝(單節點)
1、下載Consul
官網地址:https://www.consul.io/downloads.html,下載對應的版本即可
確認好版本好,下載到我們的本機目錄命令:
2、安裝Consul
3、測試Consul是否安裝成功
如下圖表示成功:
4、啓動與配置Consul服務
如下圖表示啓動成功:
輸入地址查看服務狀態:目前Consul正常運行
進一步查看server的情況與角色狀態
5、通過配置文件來註冊服務(也可以從consul api 接口添加服務註冊,他會自動持久化)
重新運行命令:
注:一定要保證後端服務正常運行:端口5000,5001
運行成功後,如下圖:
以上操作都是在Consul Server 端進行操作的,按官方說明:Consul Server與Consul Client要進行區分,後端的服務應該部署在Consul Client上,他們分別處理自己的事情就好。
下一篇文章已更新:.netcore consul實現服務註冊與發現-集羣