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

本篇文章爲系列文章,未讀第一集的同窗請猛戳這裏:Spring Cloud 系列之 Consul 註冊中心(一)node

本篇文章講解 Consul 集羣環境的搭建。linux

  

Consul 集羣

  

  點擊連接觀看: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 的文章。

  

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

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

相關文章
相關標籤/搜索