001-Consul

Consul安裝(單節點)

mkdir -p /data/consul
cd /data/consul
wget https://releases.hashicorp.com/consul/1.6.2/consul_1.6.2_linux_amd64.zip
unzip consul_1.6.2_linux_amd64.zip
複製consul:cp consul /usr/local/bin/,能夠直接使用訪問consul命令。

配置修改(開發者模式啓用,供測試)

自定義端口node

consul agent -dev -http-port 8080

指定配置文件linux

consul agent -dev -config-dir /etc/consul.d/
就是指定加載置文件的目錄,該目錄下全部的以.json結尾配置文件加載進去,它的加載順序是根據26個字母的順序加進行加載配置文件的。目錄必需爲consul.d,文件內容都是json格式的數據。默認後面文件定義配置會覆蓋前面文件定義的配置
/etc/consul.d/test.json
{  
    "ports": {    
        "http": 8088
    }  
}

公網能夠訪問web

-client 0.0.0.0
consul agent -dev -http-port 8080 -client 0.0.0.0

查看節點信息json

consul members

consul經常使用配置文件

-data-dir
做用:指定agent儲存狀態的數據目錄,這是全部agent都必須的,對server尤爲重要,由於他們必須持久化集羣的狀態

-config-dir
做用:指定service的配置文件和檢查定義所在的位置。目錄必需爲consul.d,文件內容都是json格式的數據。配置詳解見官方

-config-file
做用:指定一個要裝載的配置文件

-dev
做用:開發服務器模式,雖然是server模式,但不用於生產環境,由於不會有任何持久化操做,即不會有任何數據寫入到磁盤

-bootstrap-expect
做用: 參數代表該服務運行時最低開始進行選舉的節點數,當設置爲1時,則意味容許節點爲一個時也進行選舉;當設置爲3時,則等到3臺節點同時運行consul並加入到server才能參與選舉,選舉完集羣纔可以正常工做。 通常建議服務器結點3-5個。

-node
做用:指定節點在集羣中的名稱,該名稱在集羣中必須是惟一的(默認這是機器的主機名),直接採用機器的IP

-bind
做用:指明節點的IP地址,通常是0.0.0.0或者雲服務器內網地址,不能寫阿里雲外網地址。這是Consul偵聽的地址,它必須能夠被集羣中的全部其餘節點訪問。雖然綁定地址不是絕對必要的,但最好提供一個。

-server
做用:指定節點爲server,每一個數據中心(DC)的server數推薦3-5個。

-client
做用:指定節點爲client,指定客戶端接口的綁定地址,包括:HTTP、DNS、RPC
默認是127.0.0.1,只容許迴環接口訪問

10.-datacenter
做用:指定機器加入到哪個數據中心中。老版本叫-dc,-dc已經失效

集羣建立

建立server服務器

consul agent -server -ui -bootstrap-expect=1 -data-dir=/data/consul -node=agent-one -advertise=192.168.83.40 -bind=0.0.0.0 -client=0.0.0.0
-server:服務器模式
-ui:能webui展現
-bootstrap-expect:server爲1時即選擇server集羣leader
-data-dir:consul狀態存儲文件地址
-node:指定結點名
advertise:本地ip地址
-client:指定可訪問這個服務結點的ip

添加節點1變多

server1bootstrap

consul agent -server -ui -bootstrap-expect=1 -data-dir=/tmp/consul -node=agent-one -advertise=192.168.83.40 -bind=0.0.0.0 -client=0.0.0.0

server2安全

consul agent -server -ui -bootstrap-expect=1 -data-dir=/tmp/consul -node=agent-two -advertise=192.168.83.20 -bind=0.0.0.0 -client=0.0.0.0

server2加入集羣節點server1服務器

ssh server1
consul join 192.168.83.20

提示:若是剔除節點,consul leavessh

訪問:http://192.168.83.40:8500/測試

Consul概念

Agent: Consul集羣中長時間運行的守護進程,以consul agent 命令開始啓動. 在客戶端和服務端模式下均可以運行,能夠運行DNS或者HTTP接口, 它的主要做用是運行時檢查和保持服務同步。
Client: 客戶端, 無狀態, 以一個極小的消耗將接口請求轉發給局域網內的服務端集羣.
Server: 服務端, 保存配置信息, 高可用集羣, 在局域網內與本地客戶端通信, 經過廣域網與其餘數據中心通信. 每一個數據中心的 server 數量推薦爲 3 個或是 5 個.
Datacenter: 數據中心,多數據中心聯合工做保證數據存儲安全快捷
Consensus: 一致性協議使用的是Raft Protocol
RPC: 遠程程序通訊
Gossip: 基於 Serf 實現的 gossip 協議,負責成員、失敗探測、事件廣播等。經過 UDP 實現各個節點之間的消息。分爲 LAN 上的和 WAN 上的兩種情形。

參考連接: http://www.javashuo.com/article/p-awvvqmdo-w.htmlui

本站公眾號
   歡迎關注本站公眾號,獲取更多信息