PS:非 brew 安裝方式。
官網下載鏈接:https://www.consul.io/downloads.html
懶得去官網下載,或者官網下載速度慢的可以試一下下方藍奏雲鏈接。
藍奏雲v1.9.0下載:https://niceyoo.lanzous.com/iUBgwjyd6xa
1、解壓並放置指定目錄
下載解壓后,將文件放置在 /usr/local/bin 目錄下。
檢測安裝情況:
consul --version
相應截圖如下:
2、啟動及關閉命令
前台啟動命令如下:(前台運行)
consul agent -dev
瀏覽器訪問:http://localhost:8500
如上這種方式是以前台進行的啟動,那么相應的只需要 ctrl + c 即可關閉 consul.
后台啟動命令如下,部分參數根據自己情況修改:(后台運行)
consul agent -server -ui -bootstrap-expect=1 -client=0.0.0.0 -bind 你的ip地址 -data-dir=/狀態數據存儲文件夾/data >> /日志記錄文件夾/logs/consul.log &
-bind:綁定的內部通訊地址,默認0.0.0.0,即所有的本地地址,也可以改為自己的ip地址。
-data-dir:狀態數據存儲用的文件目錄
簡單說一下這兩條命令,其他參數參考后面標題3給出的解釋。
命令執行參考:
consul agent -server -ui -bootstrap-expect=1 -client=0.0.0.0 -bind 192.168.1.100 -data-dir=/Users/niceyoo/workspace/File/consul/data >> /Users/niceyoo/workspace/File/consul/logs/consul.log &
執行命令截圖:
關閉命令:如圖所示,一般執行完就給出 PID 了,直接 kill 掉就可以了。
kill -9 21314
如果沒有給出怎么辦?
查看端口占用情況:lsof -i :8500
搜出來的 PID 結果直接 kill 即可。
3、常用命令解釋
首先前面的 consul 肯定是省略不了了,看一下其他參數:
3.1、常用command命令
- agent:運行一個consul agent
- join:將agent加入到consul cluster
- members:列出consul cluster集群中的members
3.2、常用option選項命令
- -bootstrap:啟動模式,此模式下,節點可以選舉自己為leader,一個數據中心只能有一個此模式啟動的節點。機群啟動后,新啟動的節點不建議使用這種模式。
- -bootstrap-expect:設定一個數據中心需要的服務節點數,可以不設置,設置的數字必須和實際的服務節點數匹配。consul會等待直到數據中心下的服務節點滿足設定才會啟動集群服務。初始化leader選舉,不能和bootstr- ap混用。必須配合-server配置。
- -bind:綁定的內部通訊地址,默認0.0.0.0,即,所有的本地地址,會將第一個可用的ip地址散播到集群中,如果有多個可用的ipv4,則consul啟動報錯。[::]ipv6,TCP UDP協議,相同的端口。防火牆配置。
- -client:客戶端模式,http dns,默認127.0.0.1,回環令牌網址
- -config-file:配置文件位置
- -config-dir:配置文件所在文件夾,會加載其下所有配置文件,.json或者.hcl文件,加載順序為字母表順序;可用配置多個此配置,從而加載多個文件夾,子文件夾的配置不會被加載。
- -config-format:配置文件格式,配置了,則加載相應個是的文件。不配置,則consul自動識別。
- -data-dir:狀態數據存儲文件夾,所有的節點都需要。文件夾位置需要不收consul節點重啟影響,必須能夠使用操作系統文件鎖,unix-based系統下,文件夾文件權限為0600,注意做好賬戶權限控制,
- -datacenter:數據中心名稱,默認dc1,一個數據中心的所有節點都必須在一個LAN中。
- -dev:開發模式,去掉所有持久化選項,內存服務器模式。
- -disable-host-node-id:不使用host信息生成node ID,適用於同一台服務器部署多個實例用於測試的情況。隨機生成nodeID
- -dns-port:v7.0以后,自定義dns 端口,覆蓋默認8600
- -enable-script-checks:是否允許使用腳本進行健康檢查,默認false,最好配置enable acl
- -encrypt:consul網絡通訊加密key,base64加密,16比特;consul keygen產生。集群中的每個實例必須提供相同的,只需提供一次,然后會保存到數據文件。重啟自動加載。consul節點啟動后提供,會被忽略。
- -hcl:添加hcl格式配置,和已有的配置合並。可以使用多個此配置。
- -http-port:http api端口,覆蓋默認的8500。適用於雲環境指定。
- -log-file:日志記錄文件,如果沒有提供文件名,則默認Consul-時間戳.log
- -log-level:日志級別,默認info,包含:trace,debug,info,warn,err;consul monitor監控
- -log-rotate-bytes:新日志文件生成大小閾值。
- -log-rotate-rotation:新日志生成時間閾值
- -join:需要加入的其它節點地址,可以多次使用,加入多個節點。
- -retry-join:會進行加入重試,適用於認定加入節點最終會正常的情況。ipv4,ipv6,dns
- -retry-interval:上述,重試間隔,默認30s
- -retry-max:重試次數,默認0,無限次重試
- -join-wan, -retry-join-wan, -retry-interval-wan, -retry-max-wan
- -node:節點名稱,默認主機名
- -node-id:節點ID,
- -pid-file:consul 存儲 pid 的文件位置,用於主動發信號。如停止節點,重載配置等。
- -protocol:使用的協議,升級時使用。consul -v查看協議版本
- -raft-protocol:使用raft協議版本,默認3
- -raft-snapshot-threshold:raft執行快照,提交次數閾值。一般不需要設置,io密集型應用可以調高。避免所有的節點同一時間快照。此值過大,會造成相應日志文件變大,節點重啟恢復會耗費更長時間。1.1.0后,默認1- 6384,之前8192.
- -raft-snapshot-interval:執行快照間隔,影響類似上個配置,1.1.0后默認30s,之前5s。
- -rejoin:節點會嘗試重新加入集群。
- -server:服務端節點模式。
- -server-port:服務端RPC端口,v1.2.2后提供。
- -non-voting-server:服務節點不參與選舉,接受日志復制,用於橫向擴展,服務查詢請求。(類比zookeeper 觀察者節點)
- -syslog:linux OSX系統,配置日志輸出到系統日志。
- -ui:內置web ui界面。
- -ui-dir:web ui 資源文件夾,使用此配置,則不需也不能使用再-ui配置-
4、Consul 中默認的端口號
- 服務器RPC(默認8300):由服務器用來處理來自其他代理的傳入請求,僅限TCP。
- Serf LAN(默認8301):用來處理局域網中的八卦。所有代理都需要,TCP和UDP。
- Serf WAN(默認8302):被服務器用來在WAN上閑聊到其他服務器,TCP和UDP。從Consul 0.8開始,建議通過端口8302在LAN接口上為TCP和UDP啟用服務器之間的連接,以及WAN加入泛濫功能。
- HTTP API(默認8500):被客戶用來與HTTP API交談,僅限TCP。
- DNS接口(默認8600):用於解析DNS查詢,TCP和UDP。