中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

windows下如何搭建Consul集群

發布時間:2022-07-04 09:59:06 來源:億速云 閱讀:295 作者:iii 欄目:開發技術

這篇文章主要介紹“windows下如何搭建Consul集群”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“windows下如何搭建Consul集群”文章能幫助大家解決問題。

Consul 是 HashiCorp 公司的一個用于實現分布式系統的服務發現與配置工具。Consul內置了服務注冊與發現框 架、分布一致性協議實現、健康檢查、Key/Value存儲、多數據中心方案。由于出現得晚些,Consul具有功能完善、部署簡單、使用方便等特點。

安裝consul:

Consul由Go語言開發,因此也繼承了Go語言跨平臺,易安裝的特點。

這里以Windows平臺為例,我這里下載的是64位版本,解壓后就一個exe程序,直接以如下命令啟動:

consul agent-dev

這里有兩個參數: agent表面啟動了一個服務實例, -dev則是以快速開發的方式啟動這個實例。這個參數包含了大多數常用的功能,可以比較方便我們演示后面的功能,但它不對服務進行序列化,因此是不能應用于生產環境的。

啟動后,可以看到如下提示信息:

> consul agent –dev
==> Starting Consul agent...
==> Consul agent running!
Version: 'v1.4.0'
Node ID: 'e59c9885-c8df-608a-f870-dab9078f5c0d'
Node name: 'Develop-PC1'
Datacenter: 'dc1' (Segment: '<all>')
Server: true (Bootstrap: false)
Client Addr: [127.0.0.1] (HTTP: 8500, HTTPS: -1, gRPC: 8502, DNS: 8600)
Cluster Addr: 127.0.0.1 (LAN: 8301, WAN: 8302)
Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false

Web界面:

Consul自帶一個界面美觀,功能強大的,開箱即用的Web界面。通過該界面我們可以查看所有的服務以及節點,查看所有的健康監測及其當前的狀態,以及讀取和設置鍵/值數據。

該界面被映射到/ui上,和HTTP API使用相同的端口。默認就是http://localhost:8500/ui。

windows下如何搭建Consul集群

如果你要在其它機器上訪問該Web界面,可以加上-client參數指定綁定的IP。

consul agent -dev -bind=192.168.2.210 -client 0.0.0.0

靜態配置服務

consul支持配置文件的方式靜態配置服務,首先我們定義一個json格式的配置文件:

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

配置文件主要指定的是服務名稱,地址,端口等信息。

然后用-config-dir指定配置文件目錄啟動consul,consul會自動加載該目錄下的所有json文件,每個文件作為一個靜態配置服務。

> consul agent -dev -bind=192.168.0.211 -config-dir ./services
==> Starting Consul agent...
==> Consul agent running!
...
2018/12/05 11:43:23 [DEBUG] agent: Node info in sync
2018/12/05 11:43:23 [DEBUG] agent: Service "web" in sync
2018/12/05 11:43:23 [DEBUG] agent: Node info in sync
2018/12/05 11:43:25 [DEBUG] agent: Skipping remote check "serfHealth" since it is managed automatically
2018/12/05 11:43:25 [DEBUG] agent: Service "web" in sync
2018/12/05 11:43:25 [DEBUG] agent: Node info in sync

從輸出信息中可以看到名為"web"的服務已經同步進來。

也可以在web界面上看到該服務:

windows下如何搭建Consul集群

動態注冊服務

除了靜態配置外,使用的最多的還是服務主動注冊的方案。consul提供了一系列rest接口使得我們可以方便的注冊自己的服務。

創建服務

  • 接口地址:http://localhost:8500/v1/agent/service/register

  • 操作方式:PUT

{
    "ID": "redis1",
    "Name": "redis",
    "Tags": [
        "primary",
        "v1"
    ],
    "Address": "127.0.0.1",
    "Port": 8000,
    "EnableTagOverride": false,
    "Check": {
        "DeregisterCriticalServiceAfter": "90m",
        "Script": "/usr/local/bin/check_redis.py",
        "HTTP": "http://localhost:5000/health",
        "Interval": "10s"
    }
}

刪除服務

  • 接口地址:http://localhost:8500/v1/agent/service/deregister/redis1

  • 操作方式:PUT

查詢指服務信息

  • 接口地址: http://localhost:8500/v1/catalog/service/web

  • 操作方式: GET

查看服務的健康狀態

  • 接口地址: http://localhost:8500/v1/catalog/service/web?passing

  • 操作方式: GET

集群搭建

consul的集群拓撲架構如下圖所示:

windows下如何搭建Consul集群

它主要具有如下兩種狀態的節點:

Server: 有完整功能的代理,這些功能包括參與Raft選舉,維護集群狀態,響應RPC查詢,與其他數據中心交互WAN gossip和轉發查詢給leader或者遠程數據中心。

Client:一個Client是一個轉發所有RPC到server的代理。這個client是相對無狀態的。client唯一執行的后臺活動是加入LAN gossip池。這有一個最低的資源開銷并且僅消耗少量的網絡帶寬。

consul的集群搭建本身涉及的內容比較多,具體可參看文章Consul 集群部署。本文這里就介紹一個最簡單的拓撲情況:1server + nclient的場景。

啟動Server:

啟動Server的指令一般如下:

consul agent -data-dir=./data -node=node0 -bind=192.168.0.211 -datacenter=dc1 -ui -client=0.0.0.0 -server -bootstrap-expect 1

這里用到了不少參數,這里就簡單的介紹下:

  • -data-dir=./data 必須,指定數據文件存儲路徑

  • -node=node0 必須,指定了節點的名稱,該名稱在整個網絡中必須唯一。

  • -bind=192.168.0.211 多Ip地址機器上必須,指定了綁定的Ip地址

  • -datacenter=dc1 可選,指定了所屬的數據中心,默認為dc1

  • -ui 可選,是否啟用web服務器

  • -client=0.0.0.0 可選,指定了可以訪問的客戶端范圍,默認是127.0.0.1

  • -server 必須,表明了該節點是server節點

  • -bootstrap-expect 1 可選

有了上述知識后,在最簡單的場景下,一般可以簡化為如下形式:

consul agent -data-dir ./data -node=node0 -bind=192.168.0.211 -ui -server

啟動Client:

啟動Client的指令一般如下:

consul agent -data-dir=./data -node=node1 -bind=192.168.0.210 -datacenter=dc1 -ui -client=0.0.0.0 -join 192.168.0.211

同樣,基于前面的介紹,我們也可以把啟動客戶端指令簡化如下:

consul agent -data-dir=./data -node=node1 -bind=192.168.0.210 -ui -join 192.168.0.211

相比啟動Server的指令,少了一個-server,表明它是一個客戶端agent,同是,多了一個-join 192.168.0.211,表明了它需要連接到那個server。這個參數也可以不配置,通過命令行consul join 192.168.0.211手動加入。

啟動了client后,就可以通過consul members指令查看成員了:

> consul members
Node Address Status Type Build Protocol DC Segment
node0 192.168.0.211:8301 alive server 1.4.0 2 dc1 <all>
node1 192.168.0.210:8301 alive client 1.4.0 2 dc1 <default>

也可以通過Http接口查看:

http://localhost:8500/v1/catalog/nodes

[
    {
        "ID": "4314607d-629c-24a0-9e6c-d787efebe8c9",
        "Node": "node0",
        "Address": "192.168.0.211",
        "Datacenter": "dc1",
        "TaggedAddresses": {
            "lan": "192.168.0.211",
            "wan": "192.168.0.211"
        },
        "Meta": {
            "consul-network-segment": ""
        },
        "CreateIndex": 5,
        "ModifyIndex": 6
    },
    {
        "ID": "0a59426a-1723-6389-8681-0a16b54965e4",
        "Node": "node1",
        "Address": "192.168.0.210",
        "Datacenter": "dc1",
        "TaggedAddresses": {
            "lan": "192.168.0.210",
            "wan": "192.168.0.210"
        },
        "Meta": {
            "consul-network-segment": ""
        },
        "CreateIndex": 456,
        "ModifyIndex": 457
    }
]

同樣,也可以在web界面查看:

windows下如何搭建Consul集群

關于“windows下如何搭建Consul集群”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浮山县| 锡林浩特市| 平顶山市| 偏关县| 灌阳县| 东辽县| 涟源市| 闵行区| 绥滨县| 惠东县| 公安县| 南昌市| 永嘉县| 三都| 佛冈县| 宜川县| 慈利县| 昌乐县| 遂宁市| 繁昌县| 华阴市| 呼玛县| 枞阳县| 尼木县| 忻州市| 洞头县| 浠水县| 龙州县| 西乌| 房产| 东乡| 镇沅| 北安市| 金坛市| 金堂县| 修文县| 罗定市| 通山县| 洞头县| 屏东县| 珠海市|