Spring Cloud 系列之 Consul 註冊中心(二)

本篇文章爲系列文章,未讀第一集的同學請猛戳這裏: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 的文章。


🤗 您的點贊轉發是對我最大的支持。

📢 掃碼關注 哈嘍沃德先生「文檔 + 視頻」每篇文章都配有專門視頻講解,學習更輕鬆噢 ~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章