(原創)大話微服務之微服務治理框架和DevOps工具-Consul

今天和大家來分享一款微服務治理工具-Consul。Consul是大名鼎鼎的Hashicorp公司開發的,Zookeeper、Etcd、Consul目前是業界三大服務治理工具,成三足鼎立之勢。三者各有各的特點。這裡就不一一說明三者的優缺,僅僅分析consul的優勢:

(原創)大話微服務之微服務治理框架和DevOps工具-Consul

1.封裝了服務發現的api,開發調用非常簡單

2.提供了健康檢查功能

3.使用了raft算法保證了一致性,比複雜的paxos算法更直接,相比而言,zk採用的是paxos,二etcd採用的是raft

4.支持多數據中心,保證多機房使用。

5.支持 http 和 dns 協議接口.,zookeeper 的集成較為複雜,,etcd 只支持 http 協議

6.官方提供web管理界面, etcd 無此功能

7.唯一一款跨數據中心,其它幾款都不支持跨數據中心

下面是Consul的架構圖:

agent

組成 consul 集群的每個成員上都要運行一個 agent,可以通過 consul agent 命令來啟動。agent 可以運行在 server 狀態或者 client 狀態。自然的,運行在 server 狀態的節點被稱為 server 節點;運行在 client 狀態的節點被稱為 client 節點。

client 節點

負責轉發所有的 RPC 到 server 節點。本身無狀態,且輕量級,因此,可以部署大量的 client 節點。

server 節點

負責組成 cluster 的複雜工作(選舉、狀態維護、轉發請求到 lead),以及 consul 提供的服務(響應 RCP 請求)。考慮到容錯和收斂,一般部署 3 ~ 5 個比較合適。

datacenter

多機房使用的數據共享

網上關於Consul單機和集群部署的例子很多,這裡分享在在Windows平臺下的簡化部署方法並設置開機自動啟動、避免不停的敲入一行行難記的命令:

Consul簡化部署說明

部署Consul(只適用版本0.7)(Windows 64位服務器)時使用

1、 解壓工具,把這三個文件放在和Consul同一個目錄下,

(原創)大話微服務之微服務治理框架和DevOps工具-Consul

裡面有個批處理文件 ,修改裡面的IP為服務器的內網IP(這個通過批處理也可以獲取,但是不同環境,比如有多個網卡的服務器,或者有Wifi環境的筆記本會獲取多個,為了穩定起見,這裡還是建議手工錄入)

2、 三個腳本都修改完後,依次啟動每臺機器上的srvanyui.exe工具,配置如下:

點確定後,會提示是否啟動該服務,點“是”,在工具會看到新建的服務:

(原創)大話微服務之微服務治理框架和DevOps工具-Consul

這樣,不管機器如何重啟,只要機器能成功啟動,這個Consul節點就會自動加載到集群中去

通過打開cmd,可以看到所有節點狀態:

(原創)大話微服務之微服務治理框架和DevOps工具-Consul

簡要說明:

1、先用srvanyui將consul安裝成windows服務,路徑選擇批處理的路徑

3、加入集群的IP,所有安裝機器的加入到同一個IP總(consul join -rpc-addr=%ip%:8400 10.175.173.81)

4、加入集群后,查看命令後面要加rpc-addr=10.175.173.81:8400 http-addr=10.175.175.163:8500

查看成員:

consul members -rpc-addr=10.175.173.81:8400

consul members -http-addr=10.175.175.163:8500

查看信息:

consul info -rpc-addr=10.175.173.81:8400

consul info -http-addr=10.175.175.163:8500

查看版本:consul –v


分享到:


相關文章: