亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

搭建Consul服務(wù)發(fā)現(xiàn)與服務(wù)網(wǎng)格

 更新時(shí)間:2022年04月01日 09:11:56   作者:癡者工良  
這篇文章介紹了搭建Consul服務(wù)發(fā)現(xiàn)與服務(wù)網(wǎng)格的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

第一部分:Consul 基礎(chǔ)

1,Consul 介紹

官網(wǎng)文檔描述:Consul 是一個(gè)網(wǎng)絡(luò)工具,提供功能齊全的服務(wù)網(wǎng)格和服務(wù)發(fā)現(xiàn)。

它可以做什么:自動(dòng)化網(wǎng)絡(luò)配置,發(fā)現(xiàn)服務(wù)并啟用跨任何云或運(yùn)行時(shí)的安全連接。

那么,我們對(duì) Consul 的理解,就是服務(wù)網(wǎng)格、服務(wù)發(fā)現(xiàn),官網(wǎng)文檔說的這兩個(gè)特征,到底是啥意思?跨什么云?

下面,我們將通過實(shí)踐操作,逐漸了解 Consul,搭建出一個(gè)真實(shí)的 Consul 服務(wù)來體驗(yàn)。

2,安裝 Consul

兩臺(tái)服務(wù)器上都需要安裝 Consul,具體步驟可以參考下面的說明。

Ubuntu/Debian 系統(tǒng)

# 添加 GPG key

curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -

# 添加 倉庫
# 如果執(zhí)行后提示  apt-add-repository: command not found
# 可先安裝: apt-get install software-properties-common

sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"

# 更新源以及安裝 consul

sudo apt-get update && sudo apt-get install consul

Centos/RHEL 系統(tǒng)

# 使用 yum-config-manager 管理倉庫
sudo yum install -y yum-utils

# 連接倉庫
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo

# 安裝
sudo yum -y install consul

檢查安裝

可輸入 consul 檢查是否安裝成功,如果有信息輸出即說明安裝成功。

root@50skbjiynxyxkcfh:~# consul
Usage: consul [--version] [--help] <command> [<args>]

Available commands are:
    acl            Interact with Consul's ACLs
    agent          Runs a Consul agent
    catalog        Interact with the catalog
    config         Interact with Consul's Centralized Configurations
    connect        Interact with Consul Connect
    debug          Records a debugging archive for operators
    event          Fire a new event
    exec           Executes a command on Consul nodes
... ...

3,運(yùn)行 Consul Agent

文章一般都會(huì)說一個(gè) Consul 服務(wù)或者一個(gè) Consul 實(shí)例,官網(wǎng)文檔稱為 Agent,這個(gè)要記住。為了避免誤解,本文提到的代理指 proxy,一般使用 proxy 和 agent 單詞說明。

Agent 可以以服務(wù)器模式(server mode)或客戶端模式(client mode)運(yùn)行,多個(gè)Agent 組成一個(gè) Consul datacenter,每個(gè) Consul datacenter 至少有一個(gè) Agent 屬于 服務(wù)器模式。

官方不建議單服務(wù)器部署。

啟動(dòng) agent

前面說到過,agent 表示一個(gè) Consul 實(shí)例。

因?yàn)楝F(xiàn)在處于探索實(shí)踐階段,為了避免各種加密安全問題等,我們需要使用 -dev 參數(shù),以開發(fā)模式啟動(dòng)。

# $> consul agent
# Runs a Consul agent

consul agent -dev

執(zhí)行這個(gè)命令后,consul 會(huì)被啟動(dòng)起來,并且占用終端。

啟動(dòng)過程中注意留意信息,如果啟動(dòng)失敗,需要自行根據(jù)提示解決問題。如端口沖突:

發(fā)現(xiàn)數(shù)據(jù)中心成員

執(zhí)行 consul members 命令可以發(fā)現(xiàn)數(shù)據(jù)中心成員。

root@50skbjiynxyxkcfh:~# consul members
Node              Address          Status  Type    Build  Protocol  DC   Segment
50skbjiynxyxkcfh  172.31.0.6:8301  alive   client  0.5.2  2         dc1  <default>

意思是檢查當(dāng)前 Consul 服務(wù)的成員組成,目前是單服務(wù)器,所以只有一個(gè)成員。

這里不需要留意有什么用途,只要記得這個(gè)命令就行,后面我們會(huì)使用到這個(gè)命令查看信息。

查看 UI

假如服務(wù)器 IP 是 172.31.0.6 ,則可以通過 http://172.31.0.6:8500 訪問 consul 的 UI服務(wù)(http apis)。

4,在 Consul Service Discovery 中注冊(cè)服務(wù)

本小節(jié)將介紹 Consul 中的一些網(wǎng)絡(luò)知識(shí),端口與dns的說明;

然后通過實(shí)例講解如何定義服務(wù)以及注冊(cè)服務(wù)到 Consul 中 -- Consul 服務(wù)發(fā)現(xiàn)。

端口

這里先說明一些 Consul 的端口。

官網(wǎng)文檔:Before running Consul, you should ensure the following bind ports are accessible.

翻譯:在運(yùn)行 Consul 之前,需要確保以下端口都是可以訪問的。

文檔地址:https://www.consul.io/docs/install/ports.html

對(duì)于一些重要的配置,要查看官方文檔原版,別百度,很多文章只是機(jī)器翻譯或者 copy 命令,會(huì)讓你進(jìn)坑的。

UseDefault Ports
DNS: The DNS server (TCP and UDP)8600
HTTP: The HTTP API (TCP Only)8500
HTTPS: The HTTPs APIdisabled (8501)*
gRPC: The gRPC APIdisabled (8502)*
LAN Serf: The Serf LAN port (TCP and UDP)8301
Wan Serf: The Serf WAN port (TCP and UDP)8302
server: Server RPC address (TCP Only)8300
Sidecar Proxy Min: Inclusive min port number to use for automatically assigned sidecar service registrations.21000
Sidecar Proxy Max: Inclusive max port number to use for automatically assigned sidecar service registrations.21255

*For HTTPS and gRPC the ports specified in the table are recommendations.

  • 8500(http)、8501(https)、8502(gRPC) 三個(gè)接口可以通過遠(yuǎn)程請(qǐng)求調(diào)用相關(guān)的服務(wù),或者直接訪問。

  • 8501,8502 兩個(gè)端口都是 disabled,所以我們可以先看一下 8500 端口的作用,其他端口后面慢慢用到再解釋。

? 打開你的瀏覽器,訪問 http://{你的ip}:8500,會(huì)發(fā)現(xiàn)跳到了一個(gè) UI 界面。

  • 如果要查看端口被哪個(gè)進(jìn)程占用,可以使用 lsof -i:8081 命令,8081 是要查詢的端口。

定義服務(wù)

本小節(jié)講解如何通過配置文件以及命令形式,定義服務(wù)并向 Consul 注冊(cè)服務(wù)。

打開或新建(如果不存在) /etc/consul.d 目錄,后面使用此目錄作為 Consul 配置文件的存放位置。

在目錄中新建一個(gè) web.json 文件,用于定義服務(wù)。

touch web.json

編輯文件,修改其內(nèi)容為:

{
  "service": {
    "name": "web",
    "tags": [
      "rails"
    ],
    "port": 8080
  }
}

端口可自由設(shè)置;這里定義了一個(gè)名稱為 web 的服務(wù),其端口為 8080。

使用配置啟動(dòng)服務(wù)

我們定義配置目錄和配置文件后,可以使用配置文件重新啟動(dòng)節(jié)點(diǎn):

consul agent -dev -enable-script-checks -config-dir=/etc/consul.d

-enable-script-checks 可以開啟配置文件檢查,增強(qiáng)安全性,因?yàn)榕渲梦募梢詥⒂媚_本,導(dǎo)致可能會(huì)引入一個(gè)遠(yuǎn)程執(zhí)行漏洞。當(dāng)然,本文的實(shí)踐步驟還用不上,這里先預(yù)熱。

如無意外,會(huì)提示以下信息:

2020/11/21 10:09:25 [INFO] agent: Synced service "web"
2020/11/21 10:09:25 [DEBUG] agent: Node info in sync
2020/11/21 10:09:25 [DEBUG] agent: Service "web" in sync
2020/11/21 10:09:25 [DEBUG] agent: Node info in sync

如何重新加載配置文件

如果你修改了配置文件,可以使用命令讓 Consul 重新加載配置文件,而無需重啟。

$ consul reload
Configuration reload triggered

5,查詢服務(wù)

我們將服務(wù)添加到 Consul 后,可以使用 DNS接口 或 HTTP API 對(duì)其進(jìn)行查詢,其它應(yīng)用可以通過 Consul 網(wǎng)絡(luò)接口查詢到 Consul 提供了什么服務(wù),這就是服務(wù)發(fā)現(xiàn)(不知道我的理解對(duì)不對(duì))。

通過 HTTP API

通過 Consul HttpAPI 服務(wù),我們可以查詢到服務(wù)列表,其 URL 為 /v1/catalog/service/web 。

通過命令查詢:

curl http://localhost:8500/v1/catalog/service/web

也可以使用瀏覽器訪問。

返回的 json 中列出了所有服務(wù)節(jié)點(diǎn),以及每個(gè)服務(wù)實(shí)例的信息、狀態(tài),根據(jù) json 信息,可以發(fā)現(xiàn)服務(wù)。

當(dāng)你發(fā)現(xiàn)服務(wù)后,可以通過 json 中的信息,獲取服務(wù)的 ip 和端口,這樣就可以正式連接到這個(gè)服務(wù)了。

通過 UI 查詢

訪問 http://{你的ip}:8500 ,在 UI 上會(huì)發(fā)現(xiàn)注冊(cè)了一個(gè)叫 web 的服務(wù)。

6,DNS 知識(shí)與查詢基礎(chǔ)知識(shí)

基礎(chǔ)知識(shí)

Linux 中,dig 命令用于查詢一個(gè)域名的 DNS 信息,使用示例:

dig baidu.com
... ...
baidu.com.		375	IN	A	220.181.38.148
baidu.com.		375	IN	A	39.156.69.79
... ...

DNS 查詢的標(biāo)準(zhǔn)端口號(hào)是 53,通過這個(gè)端口號(hào),可以向 DNS 服務(wù)器查詢更多的域名信息。

DNS 有 A 記錄(解析到 IP)、CNAME(別名,解析到域名)等類型,有興趣的話自行查找資料了解。

dig 命令請(qǐng)參考 https://linux.die.net/man/1/dig

dig 的其中一個(gè)查詢格式為:

dig [@server] [-p {port}] [name]

dig @127.0.0.1 -p 8600 是指定 8600 端口作為 DNS 服務(wù)查詢的端口;name 名稱則表示要指定查詢的資源名稱。

記住這個(gè)查詢格式。

通過 DNS 查詢 Consul 服務(wù)信息

前面已經(jīng)注冊(cè)了 web 服務(wù),那么 如何通過 Consul 的 DNS 接口(8600端口)查詢 web 服務(wù)的信息?

可在在默認(rèn)主機(jī)上執(zhí)行:

dig @127.0.0.1 -p 8600 web.service.consul

關(guān)于 dig 命令,前面已經(jīng)講解了,web.service.consul 就是 [name] 部分。 Consul 會(huì)將注冊(cè)的服務(wù)名稱加上 .service.consul 做為命名。

那么,查詢這個(gè) DNS 有啥用?這里先記下來,后面我們繼續(xù)搗鼓。

小結(jié)

目前我們已經(jīng)學(xué)會(huì)使用 命令注冊(cè)服務(wù),但是因?yàn)橹皇?“配置” 了一下,web(8080端口)服務(wù),壓根不存在真正的服務(wù)。后面我們將通過部署真實(shí)的 web 服務(wù),然后注冊(cè)到 Consul 中。

7,將數(shù)據(jù)存儲(chǔ)在Consul KV 中

打開你的 Consul UI 界面,如圖:

你可以通過 UI 界面創(chuàng)建鍵值數(shù)據(jù),也可以通過命令行形式 CURD 鍵值數(shù)據(jù)。命令行示例如下:

增加或修改:

consul kv put {key} {value}

獲取值:

consul kv get {key}

刪除鍵:

consul kv delete {key}

示例:

consul kv put name 癡者工良

第二部分:深入 Consul

本章內(nèi)容介紹如何使用 Consul Service Mesh 連接服務(wù)、代理服務(wù);建立數(shù)據(jù)中心,部署多個(gè)實(shí)例;

8,Consul Service Mesh

了解 Consul Service Mesh

Consul Service Mesh 是通過基于身份的授權(quán)、L7流量管理和服務(wù)對(duì)服務(wù)加密,為現(xiàn)代應(yīng)用程序網(wǎng)絡(luò)和安全性創(chuàng)建一致的平臺(tái)。

它有什么用處?

例如,在多個(gè)集群和環(huán)境之間聯(lián)合領(lǐng)事,創(chuàng)建一個(gè)全球服務(wù)網(wǎng)格。跨平臺(tái)一致地應(yīng)用策略和安全。如下圖所示:

筆者注:envoy 是第三方開源邊緣和服務(wù)代理,并不是 Consul 的功能,Consul 自帶的是 Consul connect。

Consul Service Mesh 應(yīng)用場(chǎng)景可參考:https://www.consul.io/use-cases/multi-platform-service-mesh

Consul Service Mesh 可以通過代理將多臺(tái)服務(wù)器中的服務(wù)關(guān)聯(lián)起來,使得其能夠通過專用網(wǎng)絡(luò)相互訪問。

詳細(xì)請(qǐng)點(diǎn)擊 https://www.consul.io/docs/connect/gateways/mesh-gateway

部署真實(shí)服務(wù)

在 Consul 官網(wǎng)文檔,使用了 socat 來演示一個(gè)服務(wù),并注冊(cè)到 Consul 中,,筆者覺得過于麻煩,這里筆者為了更好地學(xué)習(xí) Consul ,使用 rust 編寫了一個(gè)輕量的 web 服務(wù),Windows 大小 4MB,Linux 下 8MB,無需安裝任何依賴。

建議讀者使用筆者寫的這個(gè) Web demo 作為真實(shí)服務(wù)部署,這個(gè) demo 已開源,下載地址:

https://github.com/whuanles/consulweb/releases

下載文件完畢后,上傳到服務(wù)器空目錄中。

為了自定義綁定 web 服務(wù)地址,需要新建一個(gè) option.txt 文件,其內(nèi)容如下:

0.0.0.0:8081

快速創(chuàng)建文件命令:

echo "0.0.0.0:8081" > option.txt

Web 服務(wù)支持部署靜態(tài)文件,你可以新建靜態(tài)網(wǎng)頁文件如 index.html,放到程序目錄下,然后通過綁定的 ip 和端口即可訪問。

記得給 web 賦予權(quán)限:

chmod +x web

執(zhí)行 ./web 啟動(dòng) web 服務(wù),執(zhí)行 nohup ./web & 后臺(tái) 運(yùn)行 web 服務(wù)。

這樣我們就有一個(gè)真實(shí)的 web 服務(wù)了,大家可以使用瀏覽器訪問測(cè)試。

真實(shí)注冊(cè)服務(wù)

使用筆者或者自定義編寫的服務(wù)后,需要將這個(gè)服務(wù)注冊(cè)到 Consul 中。

在 /etc/consul.d 目錄,新建 realweb.json 文件。

{
  "service": {
    "name": "realweb",
    "port": 8081,
    "connect": {
      "sidecar_service": {}
    }
  }
}

然后執(zhí)行 consul reload 重新加載配置文件。

注冊(cè)代理

為啥要注冊(cè)代理呢?

前面經(jīng)過實(shí)踐,我們已經(jīng)學(xué)會(huì)了注冊(cè)服務(wù)以及服務(wù)發(fā)現(xiàn),一開始介紹 Consul 時(shí),我們還看到 “Consul 提供功能強(qiáng)大的 服務(wù)網(wǎng)格”、“安全的連接” 等,那么我們通過這里的步驟(代理),就是體會(huì) Consul 的這個(gè)特征功能。

前面已經(jīng)注冊(cè)了 realweb 這個(gè)服務(wù),現(xiàn)在我們開啟代理,在新的終端窗口,執(zhí)行:

 consul connect proxy -sidecar-for realweb

可以看到,Consul 使用 21000 端口來代理 realweb 服務(wù)。

這個(gè)代理功能稱為 Consul Connect。

但是這個(gè)端口是不能訪問的,其基本結(jié)構(gòu)如下:

        源                       代理后
------------------        ------------------
|8081 <---> 21000| <----> |21001 <---> 9191|
------------------        ------------------

8081(源) 和 9191(代理的端口) 都可以訪問,21000 和 21001 都是屬于橋接端口,不能訪問。

代理服務(wù)

前面注冊(cè) realweb 代理服務(wù)后(8081 <---> 21000),我們開始對(duì)其進(jìn)行代理(21001 <---> 9191)。

這里的代理,是通過 Consul Service Mesh 使用 Sidecar 代理將服務(wù)相互連接,這種功能就叫 服務(wù)網(wǎng)格。

        源                                            代理后
--------------------------                --------------------------
|8081 <-----------> 21000|   <-------->   |21001 <-----------> 9191|
|     Consul Connect     |     Sidecar    |      Consul Connect    |
--------------------------                --------------------------

為了實(shí)現(xiàn)代理,需要?jiǎng)?chuàng)建新的配置文件,注冊(cè)服務(wù)。

新建一個(gè)終端窗口,在 /etc/consul.d/ 目錄新建一個(gè) proxyweb.json 文件。

其內(nèi)容如下:

{
  "service": {
    "name": "proxyweb",
    "connect": {
      "sidecar_service": {
        "proxy": {
          "upstreams": [
            {
              "destination_name": "realweb",
              "local_bind_port": 9191
            }
          ]
        }
      }
    }
  }
}  

可以將 Connect 代理的每個(gè)上游配置為通過網(wǎng)狀網(wǎng)關(guān)進(jìn)行路由。local_bind_port 表示代理服務(wù)后,使用哪個(gè)端口作為代理端口。

綁定的代理端口可能是以下幾種情況(這里直接搬文檔):

  • local-在這種模式下,Connect代理建立與同一數(shù)據(jù)中心中運(yùn)行的網(wǎng)關(guān)的出站連接。然后,該網(wǎng)關(guān)負(fù)責(zé)確保將數(shù)據(jù)轉(zhuǎn)發(fā)到目標(biāo)數(shù)據(jù)中心中的網(wǎng)關(guān)。

  • remote-在此模式下,Connect代理建立與目標(biāo)數(shù)據(jù)中心中運(yùn)行的網(wǎng)關(guān)的出站連接。然后,該網(wǎng)關(guān)將數(shù)據(jù)轉(zhuǎn)發(fā)到最終目標(biāo)服務(wù)。

  • none -在此模式下,不使用網(wǎng)關(guān),并且Connect代理將其出站連接直接連接到目標(biāo)服務(wù)。

創(chuàng)建配置完畢后(注冊(cè)服務(wù)),執(zhí)行 consul reload 重新加載配置文件。

然后執(zhí)行命令開始代理服務(wù)。

consul connect proxy -sidecar-for proxyweb

驗(yàn)證代理

創(chuàng)建代理完畢后,我們檢查代理是否正常。

新建一個(gè)終端窗口,執(zhí)行訪問目錄:

 curl http://127.0.0.1:9191
root@50skbjiynxyxkcfh:~# curl http://127.0.0.1:9191
<h3>恭喜你,部署 Consul 服務(wù)成功!</h3>



記得給筆者 癡者工良 點(diǎn)一下贊喲~~~

原本 realweb 服務(wù)暴露的端口為 8081,然后創(chuàng)建一個(gè)叫 proxyweb 的代理,其端口變成 9191,之后我們可以使用 9191 來訪問這個(gè) realweb 服務(wù)。

下圖是從官網(wǎng)淘過來的,大家可以根據(jù)圖片理解一下

假如搭建了一個(gè)微服務(wù),其中一臺(tái)主機(jī)有個(gè)服務(wù)是 redis,端口是 9003,你會(huì)把 redis 暴露到公網(wǎng)上么?肯定不能呀,于是通過代理功能,將 redis 服務(wù)代理到另一臺(tái) web 服務(wù)器,端口變成 5000,web 程序可以訪問 redis 服務(wù),但是外界不能訪問。

然后 web 提供 9002 端口給用戶,用戶可以訪問 web 網(wǎng)頁服務(wù)。

UI 界面查看

打開 Consul 界面,可以看到代理服務(wù)。

9,Consul 集群/數(shù)據(jù)中心

本章內(nèi)容將介紹如何將兩臺(tái)服務(wù)器的 Agent 關(guān)聯(lián)起來,建立數(shù)據(jù)中心。

開始準(zhǔn)備

這里需要兩臺(tái)服務(wù)器才行,當(dāng)然官方文檔提供了使用虛擬機(jī)的方法部署另一個(gè)系統(tǒng),但是這里不提倡,還是老老實(shí)實(shí)搞兩臺(tái)服務(wù)器實(shí)際,不然你學(xué)啥集群和微服務(wù)。。。

在 Linux 快速部署虛擬機(jī):https://learn.hashicorp.com/tutorials/consul/get-started-create-datacenter?in=consul/getting-started

切換到副服務(wù)器/虛擬機(jī)中,按照前面第二小節(jié)的安裝教程,安裝 consul。

在 主服務(wù)器上,停止 Consul,并關(guān)閉其它終端窗口,只留一個(gè)終端窗口就行。

root@50skbjiynxyxkcfh:~# top | grep consul
32318 root      20   0  785168  66096  49008 S  1.3  3.2  13:52.93 consul                                                                                  
root@50skbjiynxyxkcfh:~# kill 32318

啟動(dòng) Consul 中心

在主服務(wù)器中執(zhí)行以下命令,啟動(dòng) Consul 實(shí)例。

# -bind 填寫子網(wǎng)ip或公網(wǎng)ip,另一臺(tái)服務(wù)器可以訪問的ip
consul agent \
  -dev
  -server \
  -bootstrap-expect=1 \
  -node=agent-one \
  -bind=172.31.0.6 \
  -data-dir=/tmp/consul \
  -config-dir=/etc/consul.d
  • server-提供此標(biāo)志表示您希望代理以服務(wù)器模式啟動(dòng)。

  • -bootstrap-expect-這告訴 Consul datacenter 總共應(yīng)該有多少臺(tái)服務(wù)器。

  • -node-數(shù)據(jù)中心中的每個(gè)節(jié)點(diǎn)必須具有唯一的名稱。

  • -bind-這是該代理將偵聽其他 Consul 成員進(jìn)行通信的地址。填子網(wǎng)ip或公網(wǎng)ip。

  • data-dir-此標(biāo)志告訴 Consul Agent 他們應(yīng)將狀態(tài)存儲(chǔ)在哪里,其中可以包括服務(wù)器和客戶端的敏感數(shù)據(jù)(如ACL令牌)。

  • config-dir-此標(biāo)志告訴Consul在哪里尋找其配置。

啟動(dòng)成功后,會(huì)提示:

    2020-11-21T07:46:59.903+0800 [INFO]  agent.server: federation state anti-entropy synced
    2020-11-21T07:46:59.903+0800 [INFO]  agent: Synced node info
    2020-11-21T07:46:59.911+0800 [INFO]  agent: Synced service: service=web
    2020-11-21T07:46:59.923+0800 [INFO]  agent: Synced service: service=proxyweb
    2020-11-21T07:46:59.939+0800 [INFO]  agent: Synced service: service=proxyweb-sidecar-proxy
    2020-11-21T07:46:59.961+0800 [INFO]  agent: Synced service: service=realweb
    2020-11-21T07:46:59.971+0800 [INFO]  agent: Synced service: service=realweb-sidecar-proxy
  • 如果有報(bào) realweb、proxy 代理錯(cuò)誤的信息,可以忽略掉。

啟動(dòng)客戶端

在副服務(wù)器上,執(zhí)行以下命令啟動(dòng)一個(gè)新的 Agent。

consul agent \
  -node=agent-two \
  -bind=172.31.0.7 \
  -enable-script-checks=true \
  -data-dir=/tmp/consul \
  -config-dir=/etc/consul.d

檢查成員信息

到目前為止,我們有兩臺(tái)服務(wù)器,每臺(tái)服務(wù)器都部署了 Consul 實(shí)例,但是他們都是獨(dú)立的,還沒有被關(guān)聯(lián)起來。

我們可以在每臺(tái)服務(wù)器上執(zhí)行以下命令檢查其成員信息:

consul members
# consul server 1
Node       Address          Status  Type    Build  Protocol  DC   Segment
agent-one  172.31.0.6:8301  alive   server  1.8.6  2         dc1  <all>

# consul server 2
Node       Address          Status  Type    Build  Protocol  DC   Segment
agent-two  172.31.0.7:8301  alive   client  1.8.6  2         dc1  <default>

關(guān)聯(lián)服務(wù)器

現(xiàn)在,我們把副服務(wù)器(172.31.0.7)加入到主服務(wù)器(172.31.0.6)中。

在副服務(wù)器上執(zhí)行以下命令:

consul join 172.31.0.6

重新在每臺(tái)服務(wù)器下執(zhí)行 consul members 命令查看成員信息:

# consul server 1
Node       Address          Status  Type    Build  Protocol  DC   Segment
agent-one  172.31.0.6:8301  alive   server  1.8.6  2         dc1  <all>
agent-two  172.31.0.7:8301  alive   client  1.8.6  2         dc1  <default>


# consul server 2
Node       Address          Status  Type    Build  Protocol  DC   Segment
agent-one  172.31.0.6:8301  alive   server  1.8.6  2         dc1  <all>
agent-two  172.31.0.7:8301  alive   client  1.8.6  2         dc1  <default>

打開 UI 查看服務(wù)節(jié)點(diǎn)信息

打開 Consul UI 界面(8500端口),點(diǎn)擊 Nodes ,即可看到 Consul 所有服務(wù)器節(jié)點(diǎn)。

10,集群代理服務(wù)

本章內(nèi)容講述如何通過代理功能,將一臺(tái)主機(jī)的服務(wù)在代理到另一臺(tái)服務(wù)器中訪問。

提供代理服務(wù)

在主服務(wù)器上把 proxyweb 終端關(guān)掉(已關(guān)掉請(qǐng)忽略),進(jìn)入 /etc/consul.d 目錄把 proxyweb.json
刪除,重新加載配置:

consul reload

然后啟動(dòng)代理功能(Consul connect):

consul connect proxy -sidecar-for realweb

另一臺(tái)服務(wù)器代理

在副服務(wù)器的 /etc/consul.d/ 目錄中,新建一個(gè) proxyweb.json 文件,其內(nèi)容如下:

{
  "service": {
    "name": "proxyweb",
    "connect": {
      "sidecar_service": {
        "proxy": {
          "upstreams": [
            {
              "destination_name": "realweb",
              "local_bind_port": 9191
            }
          ]
        }
      }
    }
  }
}

重新加載配置:

consul reload

啟動(dòng)代理服務(wù)

 consul connect proxy -sidecar-for proxyweb

驗(yàn)證代理

在副服務(wù)器打開新的窗口,執(zhí)行:

curl http://127.0.0.1:9191

發(fā)現(xiàn)

<h3>恭喜你,部署 Consul 服務(wù)成功!</h3><br><br><br><br>記得給筆者 癡者工良 點(diǎn)一下贊喲~~~

說明通過代理服務(wù),可以將一臺(tái)主機(jī)的服務(wù)(端口),在另一臺(tái)主機(jī)上使用別的端口(相同端口也可以)訪問這個(gè)服務(wù)。

到此這篇關(guān)于搭建Consul服務(wù)發(fā)現(xiàn)與服務(wù)網(wǎng)格的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論