Consul 簡介、安裝

使用背景

客戶端的調用一個微服務,在調用過程中,為了完成一次請求,代碼需要知道服務實例的網絡位置(IP 地址和端口),需要動態(tài)感知服務的服務健康度是否可用,負載均衡等相關問題,既然有這些問題,那么服務發(fā)現(xiàn)就是解決這些問題的。

consul 簡介

那么consul是啥?consul就是提供服務發(fā)現(xiàn)的工具,下面是簡單的介紹

那么consul是啥?consul就是提供服務發(fā)現(xiàn)的工具。
* 服務發(fā)現(xiàn):consul通過DNS或者HTTP接口使服務注冊和服務發(fā)現(xiàn)變的很容易
* health checking:健康檢測使consul可以快速的告警在集群中的操作。和服務發(fā)現(xiàn)的集成,可以防止服務轉發(fā)到故障的服務上面
* key/value storage:一個用來存儲動態(tài)配置的系統(tǒng)。提供簡單的HTTP接口,可以在任何地方操作。
*?multi-datacenter:支持多數(shù)據(jù)中心無需復雜的配置,即可支持任意數(shù)量的區(qū)域

consul的幾個概念

1. Consul Cluster由部署和運行了Consul Agent的節(jié)點組成。 在Cluster中有兩種角色:Server和 Client。
2. Server和Client的角色和Consul Cluster上運行的應用服務無關, 是基于Consul層面的一種角色劃分.
3. Consul Server: 用于維護Consul Cluster的狀態(tài)信息, 實現(xiàn)數(shù)據(jù)一致性, 響應RPC請求。官方建議是: 至少要運行3個或者3個以上的Consul Server。 多個server之中需要選舉一個leader, 這個選舉過程Consul基于Raft協(xié)議實現(xiàn). 多個Server節(jié)點上的Consul數(shù)據(jù)信息保持強一致性。 在局域網內與本地客戶端通訊,通過廣域網與其他數(shù)據(jù)中心通訊。Consul Client: 只維護自身的狀態(tài), 并將HTTP和DNS接口請求轉發(fā)給服務端。
4. Consul 支持多數(shù)據(jù)中心, 多個數(shù)據(jù)中心要求每個數(shù)據(jù)中心都要安裝一組Consul cluster,多個數(shù)據(jù)中心間基于gossip protocol協(xié)議來通訊, 使用Raft算法實現(xiàn)一致性
5.使用端口
? ?8300:TCP # Server RPC :agent server 使用的,用于處理其他agent發(fā)來的請求
? ?8301:TCP and UDP # Serf LAN: 所有的agent都要使用這個端口,用于處理LAN中的gossip,
? ?8302:TCP and UDP # Serf WAN:agent Server使用的,處理WAN中的與其他server的gossip
? ?8400:TCP # 所有agent都要使用的端口,用于處理從CLI來的RPC。
? ?8500:TCP # 所有agent都要使用的端口,用于處理HTTP API。
? ?8600:TCP and UDP # 用于處理 DNS 查詢。

Consul安裝

安裝環(huán)境:?mac:64bit(查看mac位數(shù):打開終端–>”uname -a”)
consul安裝很簡單,從官網 https://www.consul.io/downloads.html?進行下載就好,將consul_1.0.6_darwin_amd64.zip 文件解壓后執(zhí)行
sudo scp consul /usr/local/bin/

查看是否安裝成功

直接在安裝目錄下執(zhí)行consul命令即可,出現(xiàn)如下結果,表示安裝成功。

Consul 開發(fā)模式啟動

./consul agent -dev
-dev(該節(jié)點的啟動不能用于生產環(huán)境,因為該模式下不會持久化任何狀態(tài)),該啟動模式僅僅是為了快速便捷的啟動單節(jié)點consul? 該節(jié)點處于server模式? 該節(jié)點是leader? 該節(jié)點是一個健康節(jié)點?

Consul 集群方式啟動

Server (啟動3個節(jié)點)?
????????????consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=1 -client 0.0.0.0 -ui? ? ? (192.168.0.1)
? ? ? ? ? ??consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=2 -client 0.0.0.0 -ui? ? ? (192.168.0.2)
? ??????????consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=3 -client 0.0.0.0 -ui? ? ? (192.168.0.3)
Agent(啟動2個節(jié)點)??
? ??????????consul agent -data-dir /tmp/consul -node=4 -join 192.168.0.1
????????????consul agent -data-dir /tmp/consul -node=5 -join 192.168.0.1

命令的常用選項,如下:
? ? ? ? ?-data-dir :? 指定agent儲存狀態(tài)的數(shù)據(jù)目錄,必填選項對于server尤其重要,因為他們必須持久化集群的狀態(tài)
? ? ? ? ?-config-dir:指定service的配置文件和檢查定義所在的位置
? ? ? ? ?-dev:該參數(shù)配置下,不會有任何持久化操作,即不會有任何數(shù)據(jù)寫入到磁盤
? ? ? ? ?-node:指定節(jié)點在集群中的名稱,該名稱在集群中必須是唯一的(默認采用機器的host)
? ? ? ? ?-server?:指定節(jié)點為server,每個數(shù)據(jù)中心(DC)的server數(shù)推薦至少為1,至多為5
? ? ? ? ?-join?:將節(jié)點加入到集群
? ? ? ? ?-datacenter?:指定機器加入到哪一個數(shù)據(jù)中心中
? ? ? ? ?-client?:指定節(jié)點為client,指定客戶端接口的綁定地址,包括:HTTP、DNS、RPC,默認是127.0.0.1,只允許回環(huán)接口訪問
? ? ? ? ?-bootstrap-expect?:該命令通知consul server我們現(xiàn)在準備加入的server節(jié)點個數(shù),該參數(shù)是為了延遲日志復制的啟動直到我們指
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 定數(shù)量的server節(jié)點成功的加入后啟動。
?常見問題:
? ? ? ? 1.啟動集群后,不能訪問UI管理界面,查看client 是否沒有配置,默認只能127.0.0.1?
? ? ? ? 2.如果機器有多個網卡的時候,需要用? -bind :綁定IP地址,才能正常啟動
? ? ? ? 3.部署在生產環(huán)境可以用??nohup consul agent -config-dir=/etc/consul.d > /data/consul/data/consul.log & 方式啟動

訪問集群

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,618評論 19 139
  • 由于文章太長,簡書放不下,完整文檔見Consul文檔。 一、安裝 Consul Consul 的安裝很簡單,安裝 ...
    FlySheep_ly閱讀 10,419評論 1 13
  • 在互聯(lián)網應用領域,服務的動態(tài)性需求十分常見,這就對服務的自動發(fā)現(xiàn)和可動態(tài)擴展提出了很高的要求。 微服務系統(tǒng)動輒上萬...
    Liberalman閱讀 8,303評論 23 80
  • [TOCM] Consul版本 v0.9.2 1. 配置 1.1 CLI配置 Consul Agent有各種各樣的...
    Liberalman閱讀 8,256評論 18 3
  • 我們縱情聲色不過是以此為寄, 我們堅強轉身不過是自欺欺人。 第二種愛情 初見唐唐,只是覺得她是個很會與人打交道的姑...
    北城故事閱讀 498評論 2 0

友情鏈接更多精彩內容