1.NeGet添加 Consul
2.添加consul
public static class ConsulRegister { public static void RegistConsul(this IConfiguration configuration) { #region 注冊consul string ip = configuration["ip"] ?? "Localhost"; //部署到不同服務器的時候不能寫成127.0.0.1或者0.0.0.0,因為這是讓服務消費者調用的地址 //int port = int.Parse(configuration["Consul:ServicePort"]);//服務端口 int port = string.IsNullOrWhiteSpace(configuration["port"]) ? 44344 : int.Parse(configuration["port"]); ConsulClient client = new ConsulClient(obj => { obj.Address = new Uri("http://127.0.0.1:8500"); obj.Datacenter = "dc1"; }); //向consul注冊服務 Task<WriteResult> result = client.Agent.ServiceRegister(new AgentServiceRegistration() { ID = "apiserviceTest_" + Guid.NewGuid(),//服務編號,不能重復 Name = "apiserviceTest",//服務的名字--將來調用時用的就是這個 Address = ip, Port = port, Tags =new string[] { } ,//可以用來設置權重 Check = new AgentServiceCheck() { DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),//服務停止多久后反注冊 Interval = TimeSpan.FromSeconds(10),//健康檢查時間間隔,或者稱為心跳間隔 HTTP = $"http://{ip}:{port}/api/health",//健康檢查地址, Timeout = TimeSpan.FromSeconds(5)//超時 } }); #endregion } }
3.在Startup注冊Consul
this.Configuration.RegistConsul();