zoukankan      html  css  js  c++  java
  • 微服务入门03 Consul

    consul是一个服务的管理者,用来服务注册 提供 消费

    下载地址
    https://www.consul.io/downloads.html

    运行

    consul.exe agent -dev 这是开发环境测试,生产环境要建集群,要至少一台 Server,多台 Agent。 开发环境中 consul 重启后数据就会丢失。

    consul启动后默认的端口是8500 这时候就可以访问 http://127.0.0.1:8500/

    consul 主要做三件事:

    • 提供服务到 ip 地址的注册;
    • 提供服务到 ip 地址列表的查询;
    • 对提供服务方的健康检查(HealthCheck);

    .netCore 中的配置

    Install-Package Consul
    

    心跳检测

    consul会定时向这个地址请求,证明这个服务还“有心跳” 还活着而不是已经关闭

    [Route("api/[controller]")]
    public class HealthController : Controller
    {
        [HttpGet]
        public IActionResult Get() {
             return Ok("ok"); 
        }
    }
    

    在Configure注册

    //服务名字
    var serviceName = "MsgService";
    var serviceId = serviceName + Guid.NewGuid();
    using (var consulClient = new ConsulClient(m =>
    {
        m.Address = new Uri("http://127.0.0.1:8500");
        m.Datacenter = "dcl";
    }))
    {
        consulClient.Agent.ServiceRegister(new AgentServiceRegistration
        {
            Address = ip,
             Port= Convert.ToInt32(port),
             ID=serviceId,
             Name=serviceName,
             Check =new AgentServiceCheck
             {
                 DeregisterCriticalServiceAfter=TimeSpan.FromSeconds(5),
                 HTTP=$"http://{ip}:{port}/api/Health",
                 Interval=TimeSpan.FromSeconds(10),
                 Timeout=TimeSpan.FromSeconds(5)
             }
        }).Wait();
    }
    

    终止服务
    在Configure 中注入IApplicationLifetime 在服务停止的时候注销该服务

        //服务停止
        applicationLifetime.ApplicationStopped.Register(() =>
        {
            using (var consulClient = new ConsulClient())
            {
                Console.WriteLine("应用退出了");
                consulClient.Agent.ServiceDeregister(serviceId).Wait();
            }
        });
    
  • 相关阅读:
    WPF基础篇之静态资源和动态资源
    15-Node-数据库
    15-Node
    12-Git
    总-S04-03 项目-大事件
    00-PHP难点
    08-PHP基础
    15-ES6
    16-Vue-webpack
    00-Web难点
  • 原文地址:https://www.cnblogs.com/Amayer/p/9609254.html
Copyright © 2011-2022 走看看