本篇文章爲系列文章,未讀第一集的同窗請猛戳這裏:Spring Cloud 系列之 Consul 註冊中心(一)node
本篇文章講解 Consul 集羣環境的搭建。linux
點擊連接觀看:Consul 集羣視頻(獲取更多請關注公衆號「哈嘍沃德先生」)web
上圖是一個簡單的 Consul Cluster 架構,Consul Cluster 有 Server 和 Client 兩種角色。無論是 Server 仍是 Client,統稱爲 Agent,Consul Client 是相對無狀態的,只負責轉發 RPC 到 Server 資源開銷不多。Server 是一個有一組擴展功能的代理,這些功能包括參與 Raft 選舉,維護集羣狀態,響應 RPC 查詢,與其餘數據中心交互 WAN Gossip 和轉發查詢給 leader 或者遠程數據中心。算法
每一個數據中心,Client 和 Server 是混合的。通常建議有 3~5 臺 Server。這是基於有故障狀況下的可用性和性能之間的權衡結果,由於越多的機器加入達成共識越慢,Server 之間會選舉出一個 Leader。然而並不限制 Client 的數量,通常建議一個服務對應一個 Client,它們能夠很容易的擴展到數千或者數萬臺 。在開發時咱們綁定一組服務註冊中心中的客戶端便可。spring
服務器 IP | Consul 類型 | Node 節點 |
---|---|---|
192.168.10.101 | server | server-01 |
192.168.10.102 | server | server-02 |
192.168.10.103 | server | server-03 |
192.168.10.1 | client | client-01 |
將安裝包上傳至服務器。shell
安裝 unzip 命令,建立 consul 目錄,將 consul 解壓至指定目錄。bootstrap
yum -y install unzip # 安裝 unzip mkdir -p /usr/local/consul # 建立 consul 目錄 unzip consul_1.7.0_linux_amd64.zip -d /usr/local/consul/ # 解壓至 consul 目錄 mkdir -p /usr/local/consul/data # 建立 consul 數據目錄
以 server 服務模式運行三臺註冊中心。segmentfault
# node-01 ./consul agent -server -bind=192.168.10.101 -client=0.0.0.0 -ui -bootstrap-expect=3 -data-dir=/usr/local/consul/data/ -node=server-01 # node-02 ./consul agent -server -bind=192.168.10.102 -client=0.0.0.0 -ui -bootstrap-expect=3 -data-dir=/usr/local/consul/data/ -node=server-02 # node-03 ./consul agent -server -bind=192.168.10.103 -client=0.0.0.0 -ui -bootstrap-expect=3 -data-dir=/usr/local/consul/data/ -node=server-03
參數含義以下:服務器
-server
:以服務端身份啓動(註冊中心)-bind
:表示綁定到哪一個 ip-client
:指定客戶端訪問的 ip,0.0.0.0 表示不限客戶端 ip-ui
:開啓 web 界面訪問-bootstrap-expect=3
:表示 server 集羣最低節點數爲 3,低於這個值將工做不正常(注:相似 ZooKeeper同樣,一般集羣數爲奇數方便選舉,Consul 採用的是 Raft 算法)-data-dir
:表示指定數據的存放目錄(該目錄必須存在,需提早建立好)-node
:表示節點在 web ui 中顯示的名稱
consul agent -client=0.0.0.0 -bind=192.168.10.1 -data-dir=D:\Example\consol\data -node=client-01
在 server-02 和 server-03 和 client-01 節點中輸入如下命令創建集羣關係。架構
./consul join 192.168.10.101
在任意一臺服務器中輸入如下命令可查看集羣中全部節點信息。
./consul members
訪問:http://192.168.10.101:8500/ 或者 http://192.168.10.102:8500/ 或者 http://192.168.10.103:8500/ 集羣任意節點均可看到如下界面說明集羣環境搭建成功。
service-provider 和 service-consumer 項目的配置文件和代碼都無需更改,直接啓動測試。
訪問:http://192.168.10.101:8500/,結果以下:
訪問:http://localhost:9090/order/1 結果以下:
通過測試服務正常可用,至此 Consul 服務註冊中心全部的知識點就講解結束了。
本文采用 知識共享「署名-非商業性使用-禁止演繹 4.0 國際」許可協議
。
你們能夠經過 分類
查看更多關於 Spring Cloud
的文章。
🤗 您的點贊
和轉發
是對我最大的支持。
📢 掃碼關注 哈嘍沃德先生
「文檔 + 視頻」每篇文章都配有專門視頻講解,學習更輕鬆噢 ~