自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Golang 語言微服務(wù)的服務(wù)發(fā)現(xiàn)組件之Consul 的系統(tǒng)架構(gòu)

開發(fā) 架構(gòu)
在介紹 Consul 系統(tǒng)架構(gòu)之前,我準(zhǔn)備先介紹幾個(gè) Consul 術(shù)語,目的是讓讀者朋友們更容易理解 Consul 系統(tǒng)架構(gòu)的介紹內(nèi)容。

01介紹

在上篇文章「Golang 語言微服務(wù)的服務(wù)注冊(cè)與發(fā)現(xiàn)組件 Consul」中,我們已經(jīng)介紹服務(wù)注冊(cè)與發(fā)現(xiàn)是什么,Golang 語言微服務(wù)架構(gòu)為什么需要使用服務(wù)注冊(cè)與發(fā)現(xiàn)組件,Golang 語言開發(fā)的服務(wù)注冊(cè)與發(fā)現(xiàn)組件 Consul 的主要特性和基本介紹。

本文我們介紹 Consul 的系統(tǒng)架構(gòu),讀者朋友們閱讀完本文可以了解 Consul 的工作原理。

02Consul 術(shù)語

在介紹 Consul 系統(tǒng)架構(gòu)之前,我準(zhǔn)備先介紹幾個(gè) Consul 術(shù)語,目的是讓讀者朋友們更容易理解 Consul 系統(tǒng)架構(gòu)的介紹內(nèi)容。

  • Datacenter 數(shù)據(jù)中心
  • Cluster 集群
  • Server 服務(wù)器
  • Client 客戶端
  • Agent 代理

Consul 原生支持多數(shù)據(jù)中心,數(shù)據(jù)中心中包含 Consul 集群,集群由客戶端、服務(wù)器或客戶端和服務(wù)器混合體的節(jié)點(diǎn)組成。

多個(gè)部署和運(yùn)行 Agent 的節(jié)點(diǎn)組成 Consul Cluster,集群中包含 Client、Server 或 Client 和 Server 的混合體。

如果節(jié)點(diǎn)運(yùn)行的 Agent 開啟 Server 模式,那么該節(jié)點(diǎn)為 Server。

如果節(jié)點(diǎn)運(yùn)行的 Agent 未開啟 Server 模式,那么該節(jié)點(diǎn)為 Client。

Agent 是 Consul 集群中所有節(jié)點(diǎn)都運(yùn)行的一個(gè)守護(hù)進(jìn)程,負(fù)責(zé)維護(hù)成員身份信息、注冊(cè)服務(wù)、運(yùn)行健康檢查、響應(yīng)查詢等。

03Consul 系統(tǒng)架構(gòu)

Consul 官方為我們提供了一張 Consul 系統(tǒng)架構(gòu)圖,在這張圖中,我們可以看到包含兩個(gè)數(shù)據(jù)中心,分別標(biāo)記為 DATACENTER 1 和 DATACENTER 2。由此可見,Consul 原生支持多數(shù)據(jù)中心。

在每個(gè)數(shù)據(jù)中心中都包含一個(gè) Consul 集群,DATACENTER 1 中的集群由 6 個(gè)部署并運(yùn)行 Agent 的節(jié)點(diǎn)組成,其中三個(gè)是以 Server 模式運(yùn)行的,另外三個(gè)是以 Client 模式運(yùn)行的。

而 DATACENTER 2 中的集群由 3 個(gè)部署并運(yùn)行 Agent 的節(jié)點(diǎn)組成,并且這三個(gè)節(jié)點(diǎn)都是以 Server 模式運(yùn)行的。

由此可以得出一個(gè)結(jié)論,DATACENTER 中的集群可以是包含 Client 和 Server 的混合體,也可以是僅包含 Server 節(jié)點(diǎn)。

需要注意的是,每個(gè) Consul 數(shù)據(jù)中心中的集群,官方建議 Server 模式運(yùn)行的節(jié)點(diǎn)控制在 3 至 5 個(gè),因?yàn)?3 至 5 個(gè) Server 節(jié)點(diǎn)發(fā)生故障時(shí),就可以提供一致性和可用性,并且 Server 節(jié)點(diǎn)是以 Raft 協(xié)議選舉 Leader,Server 節(jié)點(diǎn)越多,Leader 選舉越慢。而 Client 節(jié)點(diǎn)的數(shù)量沒有限制,它是輕量級(jí)進(jìn)程,我們甚至可以創(chuàng)建成千上萬個(gè) Client 節(jié)點(diǎn)。

Server 負(fù)責(zé)基于 Raft 協(xié)議選舉 Leader,維護(hù)集群狀態(tài),響應(yīng) RPC 查詢,與其他 DATACENTER 交換 WAN Gossip,將查詢請(qǐng)求轉(zhuǎn)發(fā)給 Leader 或遠(yuǎn)程 DATACENTER。

Client 是無狀態(tài)的,負(fù)責(zé)將所有查詢請(qǐng)求轉(zhuǎn)發(fā)給 Server,而且 Client 不需要與其他 DATACENTER 交換 WAN Gossip,只需參與 LAN Gossip,資源開銷很小,只消耗少量網(wǎng)絡(luò)帶寬。

04總結(jié)

本文我們介紹 Consul 的系統(tǒng)架構(gòu),我們先從宏觀上了解 Consul 的工作原理,也就是先抓住綱,然后再詳細(xì)學(xué)習(xí) Consul 的各個(gè)組件。


責(zé)任編輯:武曉燕 來源: Golang語言開發(fā)棧
相關(guān)推薦

2022-01-16 23:10:40

語言服務(wù)注冊(cè)

2023-06-02 08:33:43

微服務(wù)架構(gòu)服務(wù)注冊(cè)

2017-06-25 13:33:25

Spring Clou微服務(wù)架構(gòu)

2022-08-14 07:04:44

微服務(wù)架構(gòu)設(shè)計(jì)模式

2018-08-01 14:20:11

微服務(wù)架構(gòu)人工智能

2021-07-07 05:46:46

運(yùn)維監(jiān)控Prometheus

2022-06-17 12:05:25

微服務(wù)注冊(cè)

2020-10-14 15:37:04

Goconsul接口

2025-01-20 00:10:00

Go語言Kratos

2023-09-07 23:25:34

微服務(wù)服務(wù)發(fā)現(xiàn)

2023-07-28 09:23:24

微服務(wù)架構(gòu)

2021-06-22 18:00:09

微服務(wù)架構(gòu)系統(tǒng)

2023-12-13 07:19:01

微服務(wù)架構(gòu)Golang

2023-07-27 14:03:51

微服務(wù)

2019-07-11 15:25:02

架構(gòu)運(yùn)維技術(shù)

2019-09-10 10:46:24

微服務(wù)架構(gòu)傳統(tǒng)服務(wù)

2021-07-02 06:54:45

軟件架構(gòu)模式

2025-01-09 08:32:50

2019-10-16 08:41:46

微服務(wù)架構(gòu)Nginx

2023-08-31 17:13:01

架構(gòu)軟件開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)