環境准備
vs開發環境:vs2017
consul版本: 1.4.4
netcore版本:2.1
安裝Consul
1.從官網下載consul到本地,選擇系統對應的版本進行下載到本地,下載地址:https://www.consul.io/downloads.html
2.下載到本地之后解壓壓縮文件,並且配置環境變量(不需要每次都得到文件所在的目錄文件夾下進行啟動consul)
3.配置完成之后打開cmd輸入consul,出現以下頁面代表配置成功!~
4.輸入consul agent -dev 啟動consul服務(dev該節點的啟動不能用在正式環境,因為該模式下不會持久化任何狀態,只是為了方便調試)
5.啟動后訪問localhost:8500進入可視化管理頁面
1.單機通過docker創建consul集群
1.拉取docker鏡像
docker pull consul
2.運行docker 容器
docker run --name consul1 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 consul:latest agent -server -bootstrap-expect 2 -ui -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1
參數介紹
-bootstrap-expect:最小的集群數
-bind=0.0.0.0:綁定地址
-e CONSUL_BIND_INTERFACE=eth0 :自動綁定eth0端口的ip地址
--net=host :將容器需要映射的端口全部也映射到物理機上
-ui :開啟視圖
-client=0.0.0.0 :Consul服務偵聽地址默認是127.0.0.1不對外提供服務,如果要對外提供服務改為0.0.0.0
-bind
:該地址用來在集群內部的通訊,集群內的所有節點到地址都必須是可達的,默認是0.0.0.0
-datacenter=dc2:指定數據中心名稱
3.獲取consul服務器的ip地址
docker inspect --format '{{ .NetworkSettings.IPAddress }}' consul1
4.Cilent 加入到Consul服務器集群節點當中
docker run --name consul3 -d -p 8501:8500 consul agent -server -ui -bind=0.0.0.0 -client=0.0.0.0 -join 172.17.0.2
5.查看集群狀態
docker exec consul1 consul operator raft list-peers
6.查看數據中心
docker exec node1 consul members
7.列出所有節點
docker exec consul1 consul catalog nodes
8.移除節點
docker exec consul1 consul operator raft remove-peer -id=172.17.0.4:8301
2.多台物理服務器Docker集群部署
一般在部署的時候是多台物理機實現consul的高可用集群,此時可以進行如下操作跟單機部署差不多
1.創建server層
docker run -d --name=consul1 -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 -e CONSUL_BIND_INTERFACE=eth0 consul agent -server=true -client=0.0.0.0 -ui -bootstrap-expect=2 -datacenter=dc1
2.其他節點加入集群當中
docker run --name=consul2 -d -p 7300:8300 -p 7301:8301 -p 7302:8302 -p 7600:8600 -e CONSUL_BIND_INTERFACE=eth0 consul agent -datacenter=dc1 -server -client=0.0.0.0 -join 10.30.61.81:8301
錯誤描述
如果出現: connect: no route to host錯誤,添加如下代碼
firewall-cmd --zone=public --add-port=8301/tcp --permanent
firewall-cmd --reload
快速入口:微服務(入門一):netcore安裝部署consul
快速入口: 微服務(入門二):netcore通過consul注冊服務