溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Consul術(shù)語和命令有哪些

發(fā)布時(shí)間:2021-10-11 17:45:36 來源:億速云 閱讀:157 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“Consul術(shù)語和命令有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Consul術(shù)語和命令有哪些”吧!

Agent

Consul集群中在后臺(tái)長(zhǎng)時(shí)間運(yùn)行的進(jìn)程就是代理。代理通過consul agent啟動(dòng)。代理能夠以客戶端或服務(wù)端模式運(yùn)行。因?yàn)榧褐忻總€(gè)節(jié)點(diǎn)都必須有一個(gè)代理,因此將節(jié)點(diǎn)稱為客戶端或服務(wù)器更為簡(jiǎn)單。所有的代理都可以有DNSHTTP接口,負(fù)責(zé)健康檢查和保持服務(wù)同步。

Client

客戶端是將所有RPC請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)端的代理??蛻舳耸窍鄬?duì)無狀態(tài)的??蛻舳伺艿奈ㄒ缓笈_(tái)程序就是參與LAN的gossip池。這種活動(dòng)資源開銷最小,并且僅消耗少量的網(wǎng)絡(luò)帶寬。

Server

服務(wù)端是有擴(kuò)展職責(zé)集的代理,擴(kuò)展功能包括參與Raft仲裁,維護(hù)集群狀態(tài),響應(yīng)RPC請(qǐng)求,與其他數(shù)據(jù)中心交換WAN gossip,以及將查詢轉(zhuǎn)發(fā)給集群leader或遠(yuǎn)程數(shù)據(jù)中心。

Datacenter

數(shù)據(jù)中心是一個(gè)私有的,低延遲的,高帶寬的網(wǎng)絡(luò)環(huán)境。當(dāng)然這不包括穿越公網(wǎng)的通信,但出于我們的目的,單個(gè)EC2區(qū)域內(nèi)的多個(gè)可用區(qū)將被視為單個(gè)數(shù)據(jù)中心的一部分。

Consensus

共識(shí)協(xié)議就是集群選舉leader的一致性協(xié)議和交易順序的協(xié)議。由于這些事務(wù)適用于有限狀態(tài)機(jī),因此我們對(duì)一致性的定義意味著復(fù)制狀態(tài)機(jī)的一致性。共識(shí)在Wikipedia上有更詳細(xì)的描述,后面的文章會(huì)說Consul的實(shí)現(xiàn)。

Gossip

Consul建立在Serf之上,Serf提供了完整的,可用于多種目的Gossip協(xié)議。Serf提供了成員管理,故障檢測(cè)和事件廣播等功能。后面會(huì)重點(diǎn)說Gossip協(xié)議。Gossip會(huì)涉及到隨機(jī)的節(jié)點(diǎn)到節(jié)點(diǎn)的UDP通信。

LAN Gossip

指的是局域網(wǎng)Gossip池,其中包含的節(jié)點(diǎn)都位于同一局域網(wǎng)或數(shù)據(jù)中心上。

WAN Gossip

指僅包含服務(wù)端的WAN Gossip池。這些Consul服務(wù)端主要位于不同的數(shù)據(jù)中心上,一般通過Internet或廣域網(wǎng)進(jìn)行通信。

RPC

遠(yuǎn)程過程調(diào)用。一種請(qǐng)求/響應(yīng)模式,允許客戶端向服務(wù)器發(fā)出請(qǐng)求。

serf

serf 和Consul一樣,也是出自 Hashicorp 的開源項(xiàng)目, 實(shí)現(xiàn)了去中心化的 gossip協(xié)議,其中 gossip 協(xié)議定義了一種類似病毒感染的消息傳播過程。一些著名的開源項(xiàng)目,如 Docker 和這里說的 Consul,網(wǎng)絡(luò)管理和服務(wù)發(fā)現(xiàn)的核心組件是基于 serf 實(shí)現(xiàn)的,然而它們背后的 serf 似乎還鮮為人知,一方面其復(fù)雜的理論以及不完善的文檔讓人望而卻步;另一方面,gossip 協(xié)議天然的數(shù)據(jù) 弱一致性 也制約了 serf 的使用場(chǎng)景。

創(chuàng)建一個(gè)數(shù)據(jù)中心,需要先創(chuàng)建一個(gè)服務(wù)端集群。創(chuàng)建一個(gè)服務(wù)端的推薦方法是使用-bootstrap-expect選項(xiàng)。此選項(xiàng)是創(chuàng)建的Consul服務(wù)器節(jié)點(diǎn)的預(yù)期數(shù)量,并在有那么多服務(wù)器可用時(shí)自動(dòng)引導(dǎo)。為避免出現(xiàn)不一致和腦裂(多個(gè)服務(wù)器將其視為leader的集群)情況,必須要把-bootstrap-expect指定相同的值,或者在所有服務(wù)器上完全不指定任何值。只有指定值的服務(wù)器才會(huì)嘗試引導(dǎo)群集。

假設(shè)正在啟動(dòng)一個(gè)三個(gè)服務(wù)節(jié)點(diǎn)的集群??梢酝ㄟ^分別提供-bootstrap-expect 3的標(biāo)識(shí)來啟動(dòng)節(jié)點(diǎn)A,節(jié)點(diǎn)B和節(jié)點(diǎn)C。節(jié)點(diǎn)啟動(dòng)后,可以在服務(wù)輸出中看到一條警告消息。

[WARN] raft: EnableSingleNode disabled, and no known peers. Aborting election.

警告表明節(jié)點(diǎn)期望有2個(gè)對(duì)等節(jié)點(diǎn),但還不知道。下篇文章會(huì)介紹如何啟動(dòng)一個(gè)三個(gè)幾點(diǎn)的Consul集群,到時(shí)候會(huì)用到這個(gè)命令。

接上一篇文章的啟動(dòng)命令

docker run \
    -d \
    -p 8500:8500 \
    -p 8600:8600/udp \
    --name=badger \
    consul agent -server -ui -node=server -bootstrap-expect=1

之前在創(chuàng)建Consul節(jié)點(diǎn)的時(shí)候,指定了bootstrap-expect的值為1,這里就是一個(gè)單節(jié)點(diǎn)的Consul集群,因?yàn)槭菍?shí)驗(yàn)性的課程,所以這里設(shè)置了1,1個(gè)節(jié)點(diǎn)也是可以的,同樣可以作為服務(wù)使用,只是在生產(chǎn)環(huán)境別這樣設(shè)置,sh

端口

一個(gè)服務(wù)端Consul節(jié)點(diǎn)最多需要6個(gè)不同的端口才能正常工作,某些端口需要使用TCP,UDP或同時(shí)使用這兩種協(xié)議。

在運(yùn)行Consul之前,應(yīng)該確??梢栽L問以下綁定端口。

用途默認(rèn)端口
DNS: DNS服務(wù) (TCP 或者 UDP)8600
HTTP: HTTP接口(只有TCP)8500
HTTPS: HTTPs接口建議端口 ,默認(rèn)關(guān)閉(8501)*
gRPC:gRPC接口建議端口,默認(rèn)關(guān)閉 (8502)*
LAN Serf:    局域網(wǎng)端口(TCP和UDP)8301
Wan Serf:Serf WAN端口(TCP和UDP)8302
服務(wù)器:服務(wù)器RPC地址(僅TCP)8300
Sidecar Proxy Min:包含的最小端口號(hào),用于自動(dòng)分配的sidecar服務(wù)注冊(cè)。21000
Sidecar Proxy Max:  包含的最大端口號(hào),用于自動(dòng)分配的sidecar服務(wù)注冊(cè)。21255

端口用途

  • DNS接口 用于解析DNS查詢

  • HTTP API 客戶端通過HTTP API請(qǐng)求服務(wù)端

  • HTTPS API(可選)默認(rèn)情況下處于關(guān)閉狀態(tài),但8501端口是多種工具默認(rèn)使用的。

  • gRPC API(可選)當(dāng)前,gRPC僅用于將xDS API公開給Envoy代理。默認(rèn)情況下它是關(guān)閉的,但是端口8502是各種工具默認(rèn)使用的。在-dev模式下默認(rèn)為8502。

  • Serf LAN 用于處理LAN中的gossip協(xié)議。所有代理都需要。

  • Serf WAN 服務(wù)器廣域網(wǎng)服務(wù)器使用它來通過廣域網(wǎng)傳播到其他服務(wù)器。從Consul 0.8開始,WAN連接泛洪功能要求Serf WAN端口(TCP / UDP)在WAN和LAN接口上進(jìn)行監(jiān)聽。

  • RPC 服務(wù)器用來處理來自其他代理(agent)的請(qǐng)求。

到此,相信大家對(duì)“Consul術(shù)語和命令有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI