標籤:內建 下載 info 環境 修改 tin 間隔 名稱 route
1)下載
https://www.consul.io/
2)設定環境變數
拷貝.exe對應的檔案路徑 放到環境變數path中
3)cmd中啟動服務
consul agent -dev
4)開啟vs
5)建立web api項目
6)在Startup.cs下修改Configure函數如下
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc(); String ip = Configuration["ip"];//部署到不同伺服器的時候不能寫成127.0.0.1或者0.0.0.0,因為這是讓服務消費者調用的地址 int port = int.Parse(Configuration["port"]);//擷取服務連接埠 var client = new ConsulClient(ConfigurationOverview); //回調擷取 var result = client.Agent.ServiceRegister(new AgentServiceRegistration() { ID = "ServerNameFirst" + Guid.NewGuid(),//服務編號保證不重複 Name = "ServerFirst",//服務的名稱 Address = ip,//服務ip地址 Port = port,//服務連接埠 Check = new AgentServiceCheck //健全狀態檢查 { DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),//服務啟動多久後反註冊 Interval = TimeSpan.FromSeconds(10),//健全狀態檢查時間間隔,或者稱為心跳間隔(定時檢查服務是否健康) HTTP = $"http://{ip}:{port}/api/Health",//健全狀態檢查地址 Timeout = TimeSpan.FromSeconds(5)//服務的註冊時間 } }); }
/// <summary> /// 擷取Consul的執行個體 /// </summary> /// <param name="obj"></param> private static void ConfigurationOverview(ConsulClientConfiguration obj) { //consul的地址 obj.Address = new Uri("http://127.0.0.1:8500"); //資料中心命名 obj.Datacenter = "dc1"; }
7)設定健全狀態檢查控制器HealthController.cs
[Route("api/[controller]")] public class HealthController : Controller { [HttpGet] public IActionResult Get() => Ok("ok"); }
8)產生項目
9)開啟項目對應檔案夾 ->bin->Debug->netcoreapp2.0 路徑上輸入cmd 直接進入對應目錄並開啟cmd
10)運行命令 dotnet PeerApi.dll --ip localhost --port 14446 解釋:PeerApi.dll替換成你的dll localhost代替ip地址 注意:如果未放在iis上 輸入localhost代替127.0.0.1 其他ip地址不變 14446 是連接埠號碼 替換你的連接埠
11)開啟 http://localhost:8500/ui/dc1/services 【consul內建的監控頁面】 可以查看到具體註冊的服務
12)服務發現
稍後
在windows下.NET CORE 與Consul簡單使用