菜的像徐坤
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

.net core Consul

4426人阅读 2021/6/4 16:54 总访问:854259 评论:0 收藏:0 手机
分类: .net core

前言

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了

评价