本篇文章爲系列文章,未讀第一集的同學請猛戳這裏:Spring Cloud 系列之 Consul 註冊中心(一)
本篇文章講解 Consul 集羣環境的搭建。
Consul 集羣
點擊鏈接觀看:Consul 集羣視頻(獲取更多請關注公衆號「哈嘍沃德先生」)
上圖是一個簡單的 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,它們可以很容易的擴展到數千或者數萬臺 。在開發時我們綁定一組服務註冊中心中的客戶端即可。
環境準備
服務器 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 |
安裝
將安裝包上傳至服務器。
安裝 unzip 命令,創建 consul 目錄,將 consul 解壓至指定目錄。
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 服務模式運行三臺註冊中心。
# 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
的文章。
🤗 您的點贊
和轉發
是對我最大的支持。
📢 掃碼關注 哈嘍沃德先生
「文檔 + 視頻」每篇文章都配有專門視頻講解,學習更輕鬆噢 ~