Consul的搭建和.Net5的註冊和獲取方法(Win10簡單版)
Consul 是一個用來實現分佈式系統服務發現與配置的開源工具。它內置瞭服務註冊與發現框架、分佈一致性協議實現、健康檢查、Key/Value存儲、多數據中心方案,也可以作為配置中心。
Consul的下載就不說瞭,解壓包後吧安裝路勁放到系統環境變量Path裡面去,consul的啟動命令。
consul agent -dev
驗證啟動成功網址:localhost:8500
啟動後就要給consul註冊瞭
全局僅一次的註冊放在StartUp裡,怎麼封裝先不說,具體實現是這樣的
//找到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),//間隔固定的時間訪問一次,https://localhost:44308/api/Health HTTP = $"http://{ip}:{port}/Heart",//健康檢查地址 Timeout = TimeSpan.FromSeconds(5) } }); Console.WriteLine("註冊成功");
我這裡是通過控制臺傳參數進去給IP和Port的
多個實例註冊後
值得一提的是在註冊中的Name並不是標識,而是分組名稱。。。。。
這樣就註冊完事兒瞭,接下來說怎麼去獲取地址
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;
應該很好懂,主要是取出來,至於去取哪一個作為你的轉發項,那就看你怎麼分配瞭。
失敗重試的邏輯我沒寫。就這樣吧,這篇的目的就是讓你的Consul先能跑起來。
到此這篇關於Consul的搭建和.Net5的註冊和獲取方法(Win10簡單版)的文章就介紹到這瞭,更多相關Consul搭建.Net5的註冊獲取內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- .Net Core服務治理Consul健康檢查
- windows下搭建Consul集群
- 一文詳解Golang中consul的基本使用
- 使用docker compose搭建consul集群環境的例子
- Python腳本讀取Consul配置信息的方法示例