consul
- 單機版 - linux
- 下載下傳:wget https://releases.hashicorp.com/consul/1.3.0/consul_1.3.0_linux_amd64.zip https://releases.hashicorp.com/consul/1.3.0/consul_1.3.0_linux_amd64.zip
- style="line-height: 24px;">解壓:unzip consul_1.3.0_linux_amd64.zip -d /usr/local
- 添加環境變量 vi /etc/profile
- export CONSUL_HOME=/usr/local/bin/consul
- export PATH=$PATH:CONSUL_HOME
- 退出儲存, source /etc/profile 使修改生效
- 驗證: consul version,顯示版本
- 如下,則正常
服務發現和注冊----consul-01
- 如下,則正常
- 開發端口或者關閉防火牆
- 讓防火牆開放端口;
- 可以使用firewall-cmd --zone=public --add-port=8500/tcp --permanent,然後firewall-cmd --reload 使其生效;
- 也可以用iptables,vi /etc/sysconfig/iptables,添加 A INPUT -m state –state NEW -m tcp -p tcp –dport 8500 -j ACCEPT,儲存退出,重新開機 service iptables restart
- 讓防火牆開放端口;
- 啟動:
- 如果,你隻是用consul單機作為服務,開啟服務端即可;
- 啟動服務端:
- consul agent -server -client=0.0.0.0 -bind=192.168.1.4 -bootstrap-expect=3 -bootstrap -ui -data-dir=/usr/local/consuldata -node=consul_study > /dev/null 2>&1 &
- > /dev/null 2>&1 & 表示把該指令設定為背景啟動,防止終端關閉,consul退出,也可以不加
- -node 表示節點在web ui中顯示的名稱
- -data-dir 表示指定資料的存放目錄(該目錄必須存在)
- -bootstrap-expect=3 表示server叢集最低節點數為3,低于這個值将工作不正常(注:類似zookeeper一樣,通常叢集數為奇數,友善選舉,consul采用的是raft算法)
- -client 指定用戶端通路的ip(consul有豐富的api接口,這裡的用戶端指浏覽器或調用方),0.0.0.0表示不限用戶端ip
- -bind 表示綁定到哪個ip(有些伺服器會綁定多塊網卡,可以通過bind參數強制指定綁定的ip),就是consul 運作的機器,作為伺服器
- -server 表示以服務端身份啟動
- 開啟用戶端:
- 如果隻是作為單機使用,可以不開啟
- consul agent -client=0.0.0.0 -data-dir=/data/application/consul_data/ -node=client1 -ui > /dev/null 2>&1 &
- 驗證開啟是否成功:
- http://192.168.1.4:8500/ http://192.168.1.4:8500/ ,顯示如下,則開啟成功
服務發現和注冊----consul-01
- http://192.168.1.4:8500/ http://192.168.1.4:8500/ ,顯示如下,則開啟成功
- 如果開啟失敗,首先驗證你的服務是否可以通路:
- 驗證端口是否開放: 預設端口為8500
- 在windows 下,指令行中,使用telnet xxxx 8500
服務發現和注冊----consul-01 - 顯示,如下,則正常
服務發現和注冊----consul-01
- 在windows 下,指令行中,使用telnet xxxx 8500
- 驗證端口是否開放: 預設端口為8500
- 總結問題:
- 一、服務注冊不成功,如下
服務發現和注冊----consul-01 - 使用 http://192.168.1.4:8500/v1/agent/checks http://192.168.1.4:8500/v1/agent/checks ,檢視原因
服務發現和注冊----consul-01 - 樓主,是在虛拟機centos下安裝consul,windows下運作項目,Output 中的位址是 本地ipv4的位址,我綁定的consul的服務端的位址是192.168.1.4,通過橋連接配接,主機可以通路虛拟機,但是虛拟機無法通路主機,是以報錯連接配接逾時。
- 需要注意的是: 運作項目的位址,必須和consul服務端的位址是可以互相通路的。
- 使用 http://192.168.1.4:8500/v1/agent/checks http://192.168.1.4:8500/v1/agent/checks ,檢視原因
- 二、删除服務的問題
- 不可用服務如下:
服務發現和注冊----consul-01 - 進入詳情,擷取服務id
服務發現和注冊----consul-01 - 在consul ,服務下,運作如下指令: (xxxx-9181為服務id)
- 不可用服務如下:
- 一、服務注冊不成功,如下