首页 > 其他分享 >NetCore 使用 Consul注册服务

NetCore 使用 Consul注册服务

时间:2024-01-15 11:46:02浏览次数:24  
标签:GetSection NetCore Consul ServiceName 注册 new configuration port

第一步:配置Consul(appsettings.json)

"Consul": {
    "ServiceName": "bpm", //当前服务名称
    "IP": "127.0.0.1", //当前服务IP
    "Weight": "1",
    "Port": "5002" //当前服务端口
  }

第二步:Consul扩展类(ConsulBuilderExtensions.cs)
public static class ConsulExtensions
{
    public static void ConsulExtend(this IConfiguration configuration, string serviceName)
    {
        ConsulClient client = new(m =>
        {
            m.Address = new Uri("http://127.0.0.1:8500/");//对应服务器的地址:consul的端口
            m.Datacenter = "dc1";
        });

        //启动的时候在consul中注册实例服务
        //在consul中注册的ip, port
        string ServiceName = configuration.GetSection("Consul")["ServiceName"];
        string ip = configuration.GetSection("Consul")["IP"];
        int port = int.Parse(configuration.GetSection("Consul")["Port"]);
        int weight = int.Parse(configuration.GetSection("Consul")["Weight"]);
        client.Agent.ServiceRegister(new AgentServiceRegistration()
        {
            ID = $"{configuration["ServiceName"]}-{Guid.NewGuid()}",//唯一的
            Name = serviceName,//组(服务)名称(动态)
            Address = ip,
            Port = port,//不同的端口=>不同的实例
            Tags = new string[] { weight.ToString() },//标签
            Check = new AgentServiceCheck()//服务健康检查
            {
                Interval = TimeSpan.FromSeconds(12),//间隔1s一次 检查
                HTTP = $"http://{ip}:{port}/api/health/check",
                Timeout = TimeSpan.FromSeconds(5),//检测等待时间
                DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(20)//失败后多久移除
            }
        });
        Console.WriteLine($"{ip}:{port}--weight:{weight}");
    }
}

 

第三步:Consul注册服务(Program.cs)
builder.Configuration.ConsulExtend(builder.Configuration.GetSection("Consul")["ServiceName"]);

 

第四步:创建心跳控制器(HealthController.cs)

[Route("api/[controller]")]
[ApiController]
public class HealthController : ControllerBase
{
    [HttpGet("Check")]
    public ActionResult Check()
    {
        return Ok();
    }
}

标签:GetSection,NetCore,Consul,ServiceName,注册,new,configuration,port
From: https://www.cnblogs.com/microsoft-zh/p/17965038

相关文章

  • Windows用注册表修改键盘映射(扫描码)
    title:Windows用注册表修改键盘映射(扫描码)date:2020-10-18categories:编程tags:-键盘-注册表-Windows前言使用C/C++代码方式修改可见下篇《用C/C++(Win32API)写软件修改键位》据说Qwerty键盘是为了降低打字员打字速度,防止打字机卡机所作出的妥协。那么现在的键盘是......
  • .Net Core 系列: 集成 Consul 实现 服务注册与健康检查
    目录什么是Consul?安装和运行ConsulAsp.NetCore如何集成Consul实现服务注册和健康检查Consul.AspNetCore中的AddConsul和AddConsulServiceRegistration方法究竟做了什么?AddConsul方法AddConsulServiceRegistration方法配置Consul检查服务封装成扩......
  • Ajax注册表单用户名实时验证
    Ajax注册表单用户名实时验证 1.1.1摘要很多时候在网站上注册时,我们会发现,注册表单通常需要检查用户名和电子邮件地址的可用性;从而确保用户之间不拥有相同的用户名和电子邮件地址;一些网站喜欢在用户提交填写的用户信息时,做信息可用性的检查,而一些网站会做实时的用户名和电子......
  • Spring-Boot框架的组件注册和条件注解------Spring-Boot框架
    packagecom.example.boot3.Config;//importcom.alibaba.druid.FastsqlException;importcom.example.boot3.bean.User;importorg.springframework.boot.SpringBootConfiguration;importorg.springframework.context.annotation.Bean;importorg.springframework.co......
  • Applescript成功实现imessage数据筛选,imessage蓝号检测,无痕检测手机号是否注册imess
    一、imessages数据检测的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。2.编写苹果MacOs......
  • Asp .Net Core 系列: 集成 Consul 实现 服务注册与健康检查
    目录什么是Consul?安装和运行ConsulAsp.NetCore如何集成Consul实现服务注册和健康检查Consul.AspNetCore中的AddConsul和AddConsulServiceRegistration方法究竟做了什么?AddConsul方法AddConsulServiceRegistration方法配置Consul检查服务封装成扩展效果什么是C......
  • Outlook邮箱注册方法
    在当今数字化的时代,电子邮件已经成为人们日常生活和工作中不可或缺的一部分。而Outlook作为Microsoft旗下的一款强大的电子邮件服务,被广泛应用于全球范围内。为了享受Outlook提供的便捷服务,注册一个Outlook邮箱是第一步。接下来,我们将详细介绍Outlook邮箱注册的方法,让您轻松拥有一......
  • Outlook邮箱注册方法
    在当今数字化的时代,电子邮件已经成为人们日常生活和工作中不可或缺的一部分。而Outlook作为Microsoft旗下的一款强大的电子邮件服务,被广泛应用于全球范围内。为了享受Outlook提供的便捷服务,注册一个Outlook邮箱是第一步。接下来,我们将详细介绍Outlook邮箱注册的方法,让您轻松拥有一......
  • 智能电商运营:亚马逊鲲鹏系统带你实现自动注册、养号、下单和留评
    亚马逊鲲鹏系统是一款功能强大的全自动化操作软件,为亚马逊买家提供了一系列高效而智能的服务,让用户能够轻松管理大量买家号,实现自动注册、智能养号、批量下单和留评等操作。以下是该系统的主要特点:1、全自动批量注册买家号亚马逊鲲鹏系统支持使用手机号或邮箱进行注册,并能够模拟真......
  • 瞄准快速注册:揭秘亚马逊鲲鹏系统的全自动批量注册魔力
    想要快速注册亚马逊买家号?别急,亚马逊鲲鹏系统是你的得力助手。这一全自动批量注册工具为您提供了高效便捷的解决方案,但在使用前,务必准备好所需的必要资料。邮箱、手机号、收货地址、支付卡、以及IP等都是不可或缺的一部分。让我们一一看看这款软件对资料的要求,确保您的注册过程能够......