Consul的搭建和.Net5的注冊(cè)和獲取方法(Win10簡(jiǎn)單版)
Consul 是一個(gè)用來(lái)實(shí)現(xiàn)分布式系統(tǒng)服務(wù)發(fā)現(xiàn)與配置的開(kāi)源工具。它內(nèi)置了服務(wù)注冊(cè)與發(fā)現(xiàn)框架、分布一致性協(xié)議實(shí)現(xiàn)、健康檢查、Key/Value存儲(chǔ)、多數(shù)據(jù)中心方案,也可以作為配置中心。
Consul的下載就不說(shuō)了,解壓包后吧安裝路勁放到系統(tǒng)環(huán)境變量Path里面去,consul的啟動(dòng)命令。
consul agent -dev
驗(yàn)證啟動(dòng)成功網(wǎng)址:localhost:8500
啟動(dòng)后就要給consul注冊(cè)了
全局僅一次的注冊(cè)放在StartUp里,怎么封裝先不說(shuō),具體實(shí)現(xiàn)是這樣的
//找到Consul
ConsulClient client = new ConsulClient(c =>
{
c.Address = new Uri("http://localhost:8500/");
c.Datacenter = "dcl";
});
string ip = Configuration["ip"];
int port = Convert.ToInt32(Configuration["port"]);
string tag = Configuration["tag"];
client.Agent.ServiceRegister(new AgentServiceRegistration
{
ID = $"Steven:{Guid.NewGuid()}",
Name = "StevenGroup",
Address = ip,
Port = port,
Tags = new string[] { tag },
Check = new AgentServiceCheck
{
Interval = TimeSpan.FromSeconds(10),//間隔固定的時(shí)間訪問(wèn)一次,https://localhost:44308/api/Health
HTTP = $"http://{ip}:{port}/Heart",//健康檢查地址
Timeout = TimeSpan.FromSeconds(5)
}
});
Console.WriteLine("注冊(cè)成功");我這里是通過(guò)控制臺(tái)傳參數(shù)進(jìn)去給IP和Port的
多個(gè)實(shí)例注冊(cè)后


值得一提的是在注冊(cè)中的Name并不是標(biāo)識(shí),而是分組名稱。。。。。
這樣就注冊(cè)完事兒了,接下來(lái)說(shuō)怎么去獲取地址
ConsulClient client = new ConsulClient(c =>
{
c.Address = new Uri("http://localhost:8500/");
c.Datacenter = "dcl";
});
var response = client.Agent.Services().Result.Response;
Uri uri = new Uri("http://StevenGroup/weatherforecasta");
string groupName = uri.Host;
AgentService agentService = null;
var dic = response.Where(s => s.Value.Service.Equals(groupName, StringComparison.OrdinalIgnoreCase)).Reverse().ToArray();
agentService = dic[0].Value;應(yīng)該很好懂,主要是取出來(lái),至于去取哪一個(gè)作為你的轉(zhuǎn)發(fā)項(xiàng),那就看你怎么分配了。
失敗重試的邏輯我沒(méi)寫(xiě)。就這樣吧,這篇的目的就是讓你的Consul先能跑起來(lái)。
到此這篇關(guān)于Consul的搭建和.Net5的注冊(cè)和獲取方法(Win10簡(jiǎn)單版)的文章就介紹到這了,更多相關(guān)Consul搭建.Net5的注冊(cè)獲取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
uni-app結(jié)合.NET?7實(shí)現(xiàn)微信小程序訂閱消息推送
本文主要介紹了uni-app結(jié)合.NET?7實(shí)現(xiàn)微信小程序訂閱消息推送,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
.NET實(shí)現(xiàn)可交互的WINDOWS服務(wù)的實(shí)例代碼
那么來(lái)看一下如何才能實(shí)現(xiàn)一個(gè)可交互的服務(wù)呢。步驟與實(shí)現(xiàn)基本的服務(wù)一樣2013-03-03
asp.net下用服務(wù)器端代碼解決瀏覽器兼容性問(wèn)題
在你不厭其煩的搞瀏覽器兼容性問(wèn)題的時(shí)候不妨試下這個(gè)方法 任何一種網(wǎng)頁(yè)編程語(yǔ)言都能實(shí)現(xiàn),基于獲取用戶請(qǐng)求信息的判斷瀏覽器類型2010-01-01
C#頁(yè)碼導(dǎo)航顯示及算法實(shí)現(xiàn)代碼
C#頁(yè)碼導(dǎo)航算法要求:頁(yè)數(shù)小于等于1時(shí)不顯示;頁(yè)數(shù)大于10時(shí),自動(dòng)縮短,需要的朋友可以了解下2012-12-12
ASP.NET MVC 開(kāi)發(fā)微信支付H5的實(shí)現(xiàn)示例(外置瀏覽器支付)
這篇文章主要介紹了ASP.NET MVC 開(kāi)發(fā)微信支付H5的實(shí)現(xiàn)示例(外置瀏覽器支付),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Asp.net(C#)讀取數(shù)據(jù)庫(kù)并生成JS文件制作首頁(yè)圖片切換效果(附demo源碼下載)
這篇文章主要介紹了Asp.net(C#)讀取數(shù)據(jù)庫(kù)并生成JS文件制作首頁(yè)圖片切換效果的方法,涉及asp.net數(shù)據(jù)庫(kù)操作及JavaScript幻燈片生成的相關(guān)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-04-04
如何在ASP.NET Core中使用ViewComponent
這篇文章主要介紹了如何在ASP.NET Core中使用ViewComponent,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下2021-04-04

