.netcore consul實現服務註冊與發現-單節點部署

來源:互聯網
上載者:User

標籤:base64   因此   http   efi   trap   nim   interval   目錄   cal   

一、Consul的基礎介紹

    Consul是HashiCorp公司推出的開源工具,用於實現分布式系統的服務發現與配置。與其他分布式服務註冊與發現的方案,比如 Airbnb的SmartStack等相比,Consul的方案更“一站式”,內建了服務註冊與發現框 架、分布一致性協議實現、健全狀態檢查、Key/Value儲存、多資料中心方案,不再需要依賴其他工具(比如ZooKeeper等),使用起來也較 為簡單。Consul用Golang實現,因此具有天然可移植性(支援Linux、windows和Mac OS X);安裝包僅包含一個可執行檔,方便部署,與Docker等輕量級容器可無縫配合。

關於Consul的更多介紹,比如優點,這裡就不再贅述了,上網一搜就可以隨處找到了。但是,必須貼一個和其他類似軟體的對比:

?

二、Consul安裝前的理解

    Consul Agent有兩種運行模式:ServerClient。這裡的Server和Client只是Consul叢集層面的區分,與搭建在Cluster之上的應用服務無關, 以Server模式啟動並執行Consul Agent節點用於維護Consul叢集的狀態,官方建議每個Consul Cluster至少有3個或以上的運行在Server Mode的Agent,Client節點不限。

 

    Consul支援多資料中心,每個資料中心的Consul Cluster都會在運行於Server模式下的Agent節點中選出一個Leader節點,這個選舉過程通過Consul實現的raft協議保證,多個 Server節點上的Consul資料資訊是強一致的。處於Client Mode的Consul Agent節點比較簡單,無狀態,僅僅負責將請求轉寄給Server Agent節點。

    這裡我們會示範兩種情況的安裝:一種單節點部署,二種叢集部署,由簡單到複雜的部署會更容易理解。

三、Consul正式安裝(單節點)

1、下載Consul

官網地址:https://www.consul.io/downloads.html,下載對應的版本即可

?

確認好版本好,下載到我們的本機目錄命令:  

> wget -P /opt/consul/  https://releases.hashicorp.com/consul/1.2.2/consul_1.2.2_linux_amd64.zip

2、安裝Consul

#先解壓Consul檔案> unzip consul_1.2.2_linux_amd64.zip#將Consul檔案拷貝到執行目錄> mv consul /usr/local/bin/註:如果找不到unzip命令請安裝,命令如:yum install -y unzip

3、測試Consul是否安裝成功

> consul

如表示成功:

?

4、啟動與配置Consul服務

consul agent -server -ui -bootstrap-expect=1 -data-dir=/tmp/consul  -node=consul-1 -client=0.0.0.0  -bind=172.16.1.174 -datacenter=dc1

如表示啟動成功:

?

輸入地址查看服務狀態:目前Consul正常運行

?

進一步查看server的情況與角色狀態

查看各個server的情況> consul members查看目前全部的consul的角色狀態:> consul operator raft list-peers

?

5、通過設定檔來註冊服務(也可以從consul api 介面添加服務註冊,他會自動持久化

vi /etc/consul/services_config.json{    "services":[        {            "id": "CLIENT_SERVICE_01",            "name" : "MVCClientService",            "tags": [                "urlprefix-/MVCClientService01"            ],            "address": "172.16.1.110",            "port": 5000,            "checks": [                {                    "name": "clientservice_check",                    "http": "http://172.16.1.110:5000",                    "interval": "10s",                    "timeout": "5s"                }            ]        },         {            "id": "CLIENT_SERVICE_02",            "name" : "APIClientService",            "tags": [                "urlprefix-/APIClientService02"            ],            "address": "172.16.1.110",            "port": 5000,            "checks": [                {                    "name": "clientservice_check",                    "http": "http://172.16.1.110:5001/api/values",                    "interval": "10s",                    "timeout": "5s"                }            ]        }     ]}

重新運行命令:

consul agent -server -ui -bootstrap-expect=1 -config-dir=/etc/consul -data-dir=/tmp/consul -node=consul-1 -client=0.0.0.0 -bind=172.16.1.174 -datacenter=dc1

註:一定要保證後端服務正常運行:連接埠5000,5001

運行成功後,如:

?

以上操作都是在Consul Server 端進行操作的,按官方說明:Consul Server與Consul Client要進行區分,後端的服務應該部署在Consul Client上,他們分別處理自己的事情就好。

下一篇文章已更新:.netcore consul實現服務註冊與發現-叢集

.netcore consul實現服務註冊與發現-單節點部署

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.