排名
7
文章
192
粉丝
15
评论
16
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术

前言
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了
评价