1. 程式人生 > >consul 安裝和高可用配置

consul 安裝和高可用配置

consul 類似於eureka的註冊中心(單獨的服務)

1.根據需要下載consul(1.0和0.9的版本風格上有些差異)
也可以用命令列直接安裝(這裡安裝的是最新的版本)

brew install consul

2.下載完解壓並將二進位制檔案consul拷貝到bin目錄下

sudo scp consul /usr/local/bin/

3.測試consul是否安裝成功
如果出現command的相關介紹表示安裝成功

consul

4.啟動consul(# -dev表示開發模式執行,另外還有-server表示服務模式執行)

consul agent -dev

說明:


-dev(該節點的啟動不能用於生產環境,因為該模式下不會持久化任何狀態),
該啟動模式僅僅是為了快速便捷的啟動單節點consul
該節點處於server模式
該節點是leader
該節點是一個健康節點

相關命令:
常用的命令為啟動agent,agent下的詳細命令可以用consul agent –help查詢

  1. -data-dir
    指定agent儲存狀態的資料目錄,對於server尤其重要,因為他們必須持久化叢集的狀態

  2. -config-dir
    指定service的配置檔案和檢查定義所在的位置,通常會指定為”某一個路徑/consul.d”

  3. -config-file
    指定一個要裝載的配置檔案,該選項可以配置多次,進而配置多個配置檔案(
    後邊的會合並前邊的,相同的值覆蓋)

  4. -bootstrap-expect
    作用:該命令通知consul server我們現在準備加入的server節點個數,該引數是為了延遲日誌複製的啟動直到我們指定數量的server節點成功的加入後啟動。

  5. -node
    a. 作用:指定節點在叢集中的名稱
    b. 該名稱在叢集中必須是唯一的(預設採用機器的host)
    c. 推薦:直接採用機器的IP

  6. -bind
    a. 作用:指明節點的IP地址
    b. 有時候不指定繫結IP,會報Failed to get advertise address: Multiple private IPs found. Please configure one. 的異常

  7. -server
    a. 作用:指定節點為server
    b. 每個資料中心(DC)的server數推薦至少為1,至多為5
    c. 所有的server都採用raft一致性演算法來確保事務的一致性和線性化,事務修改了叢集的狀態,且叢集的狀態儲存在每一臺server上保證可用性
    d. server也是與其他DC互動的門面(gateway)
  8. -client
    a. 作用:指定節點為client,指定客戶端介面的繫結地址,包括:HTTP、DNS、RPC
    b. 預設是127.0.0.1,只允許迴環介面訪問
    c. 若不指定為-server,其實就是-client

  9. -join
    a. 作用:將節點加入到叢集

  10. -datacenter(老版本叫-dc,-dc已經失效)
    a. 作用:指定機器加入到哪一個資料中心中

5.叢集搭建
啟動node0機器上的Consul(node0機器上執行):

consul agent -data-dir /tmp/node0 -node=node0 -bind=192.168.11.143 -datacenter=dc1 -ui -client=192.168.11.143 -server -bootstrap-expect 1

啟動node1機器上的Consul(node1機器上執行):

consul agent -data-dir /tmp/node1 -node=node1 -bind=192.168.11.144 -datacenter=dc1 -ui

啟動node2機器上的Consul(node2機器上執行):

consul agent -data-dir /tmp/node2 -node=node2 -bind=192.168.11.145 -datacenter=dc1 -ui -client=192.168.11.145

將node1節點加入到node0上(node1機器上執行):

consul join 192.168.11.143

將node2節點加入到node0上(node2機器上執行):

consul join -rpc-addr=192.168.11.145:8400  192.168.11.143

這樣一個簡單的Consul叢集就搭建完成了,在node1上檢視當前叢集節點:

consul members -rpc-addr=192.168.11.143:8400