建立API項目修改Programjson
public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseUrls("http://127.0.0.1:5001"); }
修改Startupapi
public void Configure(IApplicationBuilder app, IHostingEnvironment env,IApplicationLifetime applicationLifetime) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc(); //註冊Consul //要註冊的服務地址 string ip = "http://127.0.0.1"; //要註冊的服務端口 string port = "5001"; string serviceName = "Values"; string serviceId = "test123456789"; using (var consulClient = new ConsulClient(ConsulConfig)) { AgentServiceRegistration asr = new AgentServiceRegistration { Address = ip, Port = Convert.ToInt32(port), ID = serviceId, Name = serviceName, //設置服務健康監測的服務,並設置輪詢機制 //制定按期檢測服務情況 Check = new AgentServiceCheck { DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5), HTTP = "http://127.0.0.1:5001/api/Health", Interval = TimeSpan.FromSeconds(10), Timeout = TimeSpan.FromSeconds(5) } }; consulClient.Agent.ServiceRegister(asr).Wait(); } applicationLifetime.ApplicationStopped.Register(() => { using (var consulClient = new ConsulClient(ConsulConfig)) { Console.WriteLine("應用退出,開始從Consul註銷"); consulClient.Agent.ServiceDeregister(serviceId).Wait(); } }); } //Consul-配置委託 private void ConsulConfig(ConsulClientConfiguration config) { //數據中心地址 config.Address = new Uri("http://localhost:8500"); config.Datacenter = "dc1"; }
添加HealthControllerapp
[Produces("application/json")] [Route("api/Health")] public class HealthController : Controller { [HttpGet] public IActionResult Get() { Console.WriteLine("健康檢查" + DateTime.Now); return Content("ok"); } }