.net core Consul
电脑版发表于:2021/6/4 16:54
前言
Consul 是一个用来实现分布式系统服务发现与配置的开源工具。它内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,也可以作为配置中心。
下载地址:
https://download.tnblog.net/resource/index/836598dc6043401f9e8ab6634b303313
下载好过后,启动命令:consul agent –dev
默认地址:http://localhost:8500/
节点介绍:
Services:服务发现
Nodes:存放的是集群节点
Key/Value:键值对
ACL:访问权限控制
Intentions:可以使用 intentions 轻松管理服务隔离,而不是使用复杂的网络拓扑和静态防火墙规则。
注入服务到Consul
下载Consul依赖
方法一
install-package Consul
方法2:在需要项目的csproj中加入一句关于consul的PackageReference(vs2019可以直接点开很方便)
<ItemGroup>
<PackageReference Include="Consul" Version="0.7.2.6" />
</ItemGroup>
添加好依赖过后,添加consul配置
public static class ConsulBuilderExtensions { public static IApplicationBuilder RegisterConsul(this IApplicationBuilder app) { var consulClient = new ConsulClient(x => { // consul 服务地址(你要注册到哪个consul服务就填写哪个) x.Address = new Uri("http://127.0.0.1:8500"); }); var registration = new AgentServiceRegistration() { ID = Guid.NewGuid().ToString(), Name = "xj",// 服务名 Address = "127.0.0.1", // 服务绑定IP(也就是你这个项目运行的ip地址) Port = 9000, // 服务绑定端口(也就是你这个项目运行的端口) Check = new AgentServiceCheck() { DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),//服务启动多久后注册 Interval = TimeSpan.FromSeconds(10),//健康检查时间间隔 HTTP = "http://localhost:9000/Health/HealthCheck",//健康检查地址 Timeout = TimeSpan.FromSeconds(5) } }; // 服务注册 consulClient.Agent.ServiceRegister(registration).Wait(); // 应用程序终止时,服务取消注册 //lifetime.ApplicationStopping.Register(() => //{ // consulClient.Agent.ServiceDeregister(registration.ID).Wait(); //}); return app; } }
健康检查,返回一个OK();
注入服务consul
//注册consul服务 app.RegisterConsul();
现在运行就可以看到服务已经被注入到consul了