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();
            }
        });
    
  • 相关阅读:
    作业: 小型购物系统1---按顺序编写
    字典操作学习小结
    字符操作学习笔记小结
    列表,元组等学习笔记小结
    模块及其数据类型小结
    python3学习笔记----基础知识1
    压力山大
    下周一开始上班啦!
    凌晨12点,沉迷学习,无法自拔...
    web前端开发2018年12月找工作总结
  • 原文地址:https://www.cnblogs.com/Amayer/p/9609254.html
Copyright © 2011-2022 走看看