windows中安装consul,及与Asp.Net Core API一起使用

学习网址:https://blog.csdn.net/sD7O95O/article/details/80750803   不会的,不了解概念的先看这个。

consul下载windows64位zip文件:https://www.consul.io/downloads.html ,下载后解压得到consul.exe文件。

开发者模式安装。于单个服务器的环境,不用于生产,开发者模式不保存任何的状态。
1、cmd先进入consul.exe所在路径,再输入下面的命令。
consul.exe agent -dev

输入上述命令后,即启动本机consul成功。

客户端地址为,127.0.0.1:8500    DNS为8600

2、向consul注册一个Asp.Net Core Api项目,并进行健康检查。

Startup.cs 中的 configure方法中,写如下代码:

扩展方法如下:

public static class ApplicationBuilderExtension
    {
        private static readonly Logger _logger = SelfLogManage.GetLog(typeof(ApplicationBuilderExtension));

        //向consul注册服务,以进行安全检查
        public static void UseConsul(this IApplicationBuilder app, IApplicationLifetime appLife)
        {
            try
            {
                var consulClient = new ConsulClient(
                    (x =>
                    x.Address = new Uri("http://127.0.0.1:8500"))
                    ); // 请求注册的Consul地址(确保该 consul 存在 , 否则影响本项目运行)

                //config consul health check
                var healthCheck = new AgentServiceCheck
                {
                    //服务启动后多久注册
                    DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),//after app start register service time
                    //服务检查时间间隔,心跳间隔
                    Interval = TimeSpan.FromSeconds(30),
                    //健康检查地址(可为本项目接口或其他项目接口)   即使检查地址失败也不会影响本项目运行
                    HTTP = "http://localhost:54425/api/health",
                    Timeout = TimeSpan.FromSeconds(5)
                };

                //service register

                var registration = new AgentServiceRegistration
                {
                    Checks = new[] { healthCheck },
                    Address = "localhost",
                    Port = 54425,
                    ID = Guid.NewGuid().ToString(),
                    Name = "ConsulHealthCheck-API",
                    Tags = new string[] { "consul", "check" }
                };
                //服务启动时注册
                consulClient.Agent.ServiceRegister(registration).GetAwaiter().GetResult();

                //service Deregister when app stop
                appLife.ApplicationStopped.Register(() =>
                {
                    //服务停止时取消注册
                    consulClient.Agent.ServiceDeregister(registration.ID).GetAwaiter().GetResult();
                });


            }
            catch (Exception e)
            {
                Environment.Exit(-1);
            }

        }

    }

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值