Consul 簡(jiǎn)介、安裝

使用背景

客戶(hù)端的調(diào)用一個(gè)微服務(wù),在調(diào)用過(guò)程中,為了完成一次請(qǐng)求,代碼需要知道服務(wù)實(shí)例的網(wǎng)絡(luò)位置(IP 地址和端口),需要?jiǎng)討B(tài)感知服務(wù)的服務(wù)健康度是否可用,負(fù)載均衡等相關(guān)問(wèn)題,既然有這些問(wèn)題,那么服務(wù)發(fā)現(xiàn)就是解決這些問(wèn)題的。

consul 簡(jiǎn)介

那么consul是啥?consul就是提供服務(wù)發(fā)現(xiàn)的工具,下面是簡(jiǎn)單的介紹

那么consul是啥?consul就是提供服務(wù)發(fā)現(xiàn)的工具。
* 服務(wù)發(fā)現(xiàn):consul通過(guò)DNS或者HTTP接口使服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)變的很容易
* health checking:健康檢測(cè)使consul可以快速的告警在集群中的操作。和服務(wù)發(fā)現(xiàn)的集成,可以防止服務(wù)轉(zhuǎn)發(fā)到故障的服務(wù)上面
* key/value storage:一個(gè)用來(lái)存儲(chǔ)動(dòng)態(tài)配置的系統(tǒng)。提供簡(jiǎn)單的HTTP接口,可以在任何地方操作。
*?multi-datacenter:支持多數(shù)據(jù)中心無(wú)需復(fù)雜的配置,即可支持任意數(shù)量的區(qū)域

consul的幾個(gè)概念

1. Consul Cluster由部署和運(yùn)行了Consul Agent的節(jié)點(diǎn)組成。 在Cluster中有兩種角色:Server和 Client。
2. Server和Client的角色和Consul Cluster上運(yùn)行的應(yīng)用服務(wù)無(wú)關(guān), 是基于Consul層面的一種角色劃分.
3. Consul Server: 用于維護(hù)Consul Cluster的狀態(tài)信息, 實(shí)現(xiàn)數(shù)據(jù)一致性, 響應(yīng)RPC請(qǐng)求。官方建議是: 至少要運(yùn)行3個(gè)或者3個(gè)以上的Consul Server。 多個(gè)server之中需要選舉一個(gè)leader, 這個(gè)選舉過(guò)程Consul基于Raft協(xié)議實(shí)現(xiàn). 多個(gè)Server節(jié)點(diǎn)上的Consul數(shù)據(jù)信息保持強(qiáng)一致性。 在局域網(wǎng)內(nèi)與本地客戶(hù)端通訊,通過(guò)廣域網(wǎng)與其他數(shù)據(jù)中心通訊。Consul Client: 只維護(hù)自身的狀態(tài), 并將HTTP和DNS接口請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)端。
4. Consul 支持多數(shù)據(jù)中心, 多個(gè)數(shù)據(jù)中心要求每個(gè)數(shù)據(jù)中心都要安裝一組Consul cluster,多個(gè)數(shù)據(jù)中心間基于gossip protocol協(xié)議來(lái)通訊, 使用Raft算法實(shí)現(xiàn)一致性
5.使用端口
? ?8300:TCP # Server RPC :agent server 使用的,用于處理其他agent發(fā)來(lái)的請(qǐng)求
? ?8301:TCP and UDP # Serf LAN: 所有的agent都要使用這個(gè)端口,用于處理LAN中的gossip,
? ?8302:TCP and UDP # Serf WAN:agent Server使用的,處理WAN中的與其他server的gossip
? ?8400:TCP # 所有agent都要使用的端口,用于處理從CLI來(lái)的RPC。
? ?8500:TCP # 所有agent都要使用的端口,用于處理HTTP API。
? ?8600:TCP and UDP # 用于處理 DNS 查詢(xún)。

Consul安裝

安裝環(huán)境:?mac:64bit(查看mac位數(shù):打開(kāi)終端–>”uname -a”)
consul安裝很簡(jiǎn)單,從官網(wǎng) https://www.consul.io/downloads.html?進(jìn)行下載就好,將consul_1.0.6_darwin_amd64.zip 文件解壓后執(zhí)行
sudo scp consul /usr/local/bin/

查看是否安裝成功

直接在安裝目錄下執(zhí)行consul命令即可,出現(xiàn)如下結(jié)果,表示安裝成功。

Consul 開(kāi)發(fā)模式啟動(dòng)

./consul agent -dev
-dev(該節(jié)點(diǎn)的啟動(dòng)不能用于生產(chǎn)環(huán)境,因?yàn)樵撃J较虏粫?huì)持久化任何狀態(tài)),該啟動(dòng)模式僅僅是為了快速便捷的啟動(dòng)單節(jié)點(diǎn)consul? 該節(jié)點(diǎn)處于server模式? 該節(jié)點(diǎn)是leader? 該節(jié)點(diǎn)是一個(gè)健康節(jié)點(diǎn)?

Consul 集群方式啟動(dòng)

Server (啟動(dòng)3個(gè)節(jié)點(diǎn))?
????????????consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=1 -client 0.0.0.0 -ui? ? ? (192.168.0.1)
? ? ? ? ? ??consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=2 -client 0.0.0.0 -ui? ? ? (192.168.0.2)
? ??????????consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=3 -client 0.0.0.0 -ui? ? ? (192.168.0.3)
Agent(啟動(dòng)2個(gè)節(jié)點(diǎn))??
? ??????????consul agent -data-dir /tmp/consul -node=4 -join 192.168.0.1
????????????consul agent -data-dir /tmp/consul -node=5 -join 192.168.0.1

命令的常用選項(xiàng),如下:
? ? ? ? ?-data-dir :? 指定agent儲(chǔ)存狀態(tài)的數(shù)據(jù)目錄,必填選項(xiàng)對(duì)于server尤其重要,因?yàn)樗麄儽仨毘志没旱臓顟B(tài)
? ? ? ? ?-config-dir:指定service的配置文件和檢查定義所在的位置
? ? ? ? ?-dev:該參數(shù)配置下,不會(huì)有任何持久化操作,即不會(huì)有任何數(shù)據(jù)寫(xiě)入到磁盤(pán)
? ? ? ? ?-node:指定節(jié)點(diǎn)在集群中的名稱(chēng),該名稱(chēng)在集群中必須是唯一的(默認(rèn)采用機(jī)器的host)
? ? ? ? ?-server?:指定節(jié)點(diǎn)為server,每個(gè)數(shù)據(jù)中心(DC)的server數(shù)推薦至少為1,至多為5
? ? ? ? ?-join?:將節(jié)點(diǎn)加入到集群
? ? ? ? ?-datacenter?:指定機(jī)器加入到哪一個(gè)數(shù)據(jù)中心中
? ? ? ? ?-client?:指定節(jié)點(diǎn)為client,指定客戶(hù)端接口的綁定地址,包括:HTTP、DNS、RPC,默認(rèn)是127.0.0.1,只允許回環(huán)接口訪(fǎng)問(wèn)
? ? ? ? ?-bootstrap-expect?:該命令通知consul server我們現(xiàn)在準(zhǔn)備加入的server節(jié)點(diǎn)個(gè)數(shù),該參數(shù)是為了延遲日志復(fù)制的啟動(dòng)直到我們指
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 定數(shù)量的server節(jié)點(diǎn)成功的加入后啟動(dòng)。
?常見(jiàn)問(wèn)題:
? ? ? ? 1.啟動(dòng)集群后,不能訪(fǎng)問(wèn)UI管理界面,查看client 是否沒(méi)有配置,默認(rèn)只能127.0.0.1?
? ? ? ? 2.如果機(jī)器有多個(gè)網(wǎng)卡的時(shí)候,需要用? -bind :綁定IP地址,才能正常啟動(dòng)
? ? ? ? 3.部署在生產(chǎn)環(huán)境可以用??nohup consul agent -config-dir=/etc/consul.d > /data/consul/data/consul.log & 方式啟動(dòng)

訪(fǎng)問(wèn)集群

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,711評(píng)論 19 139
  • 由于文章太長(zhǎng),簡(jiǎn)書(shū)放不下,完整文檔見(jiàn)Consul文檔。 一、安裝 Consul Consul 的安裝很簡(jiǎn)單,安裝 ...
    FlySheep_ly閱讀 10,431評(píng)論 1 13
  • 在互聯(lián)網(wǎng)應(yīng)用領(lǐng)域,服務(wù)的動(dòng)態(tài)性需求十分常見(jiàn),這就對(duì)服務(wù)的自動(dòng)發(fā)現(xiàn)和可動(dòng)態(tài)擴(kuò)展提出了很高的要求。 微服務(wù)系統(tǒng)動(dòng)輒上萬(wàn)...
    Liberalman閱讀 8,314評(píng)論 23 80
  • [TOCM] Consul版本 v0.9.2 1. 配置 1.1 CLI配置 Consul Agent有各種各樣的...
    Liberalman閱讀 8,270評(píng)論 18 3
  • 我們縱情聲色不過(guò)是以此為寄, 我們堅(jiān)強(qiáng)轉(zhuǎn)身不過(guò)是自欺欺人。 第二種愛(ài)情 初見(jiàn)唐唐,只是覺(jué)得她是個(gè)很會(huì)與人打交道的姑...
    北城故事閱讀 508評(píng)論 2 0

友情鏈接更多精彩內(nèi)容