在.NET CORE里面使用Consul注冊和發現服務


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();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM