.net core 6 集成nacos的服务注册和配置中心

1、安装nuget包

2、加上配置文件

"nacos": {
  "ServerAddresses": [ "http://127.0.0.1:8848" ],
  "GroupName": "DEFAULT_GROUP",
  "ClusterName": "DEFAULT",
  "ServiceName": "webapi",
  "DefaultTimeOut": 5000,
  "Namespace": "public",
  "Password": "nacos",
  "UserName": "nacos",
  "ListenInterval": 3000,
  "ConfigUseRpc": false,
  "NamingUseRpc": false,
  "Listeners": [
    {
      "Group": "DEFAULT_GROUP",
      "DataId": "webapi",
      "Optional": false
    }
  ]
}

        注意:

        "ConfigUseRpc": false
        "NamingUseRpc": false

        http连接选false否则配置中心可能会获取不到内容

3、注册

//注册nacos
builder.Services.AddNacosAspNet(builder.Configuration);

启动后

4、使用服务发现

/// <summary>
/// 服务发现-调用
/// </summary>
/// <returns></returns>
[HttpPost("find")]
public async Task<string> Find([FromServices] INacosNamingService nacosNaming)
{
    Instance instance = await nacosNaming.SelectOneHealthyInstance("webapi", "DEFAULT_GROUP");
    string ip = instance.GetIpPort();
    HttpTool tool = new HttpTool();

    string str = await tool.PostSendMessage($"http://{ip}/nacos/get", string.Empty);

    return str;
}
/// <summary>
/// 得到ip和端口
/// </summary>
/// <param name="instance"></param>
/// <returns></returns>
public static string GetIpPort(this Instance instance)
{
    return $"{instance.Ip}:{instance.Port}";
}

5、注册配置中心

//配置中心
builder.Services.AddNacosV2Config(builder.Configuration);

随意添加配置

6、使用配置中心

/// <summary>
/// 配置中心
/// </summary>
/// <param name="nacosConfig"></param>
/// <returns></returns>
[HttpPost("config")]
public async Task<string> GetConfig([FromServices] INacosConfigService nacosConfigService)
{
    string str = nacosConfigService?.GetConfigAndSignListener("test", "DEFAULT_GROUP", 3000, new Tools.ConfigListener()).Result ?? "";
    NacosTool? nacosTool = str.JsonTo<NacosTool>();

    return "ok";
}

7、配置变化的监听方法,结合第6点

/// <summary>
/// 配置变化监听
/// </summary>
public class ConfigListener : IListener
{
    /// <summary>
    /// 监听方法
    /// </summary>
    /// <param name="configInfo"></param>
    public void ReceiveConfigInfo(string configInfo)
    {
        Trace.WriteLine("接收到配置变化信息");
    }
}

然后自由发挥吧

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-20 03:18:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-20 03:18:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-20 03:18:01       82 阅读
  4. Python语言-面向对象

    2024-01-20 03:18:01       91 阅读

热门阅读

  1. ASOP的电池设置

    2024-01-20 03:18:01       51 阅读
  2. MacBook将大文件分割成很多个小文件split命

    2024-01-20 03:18:01       52 阅读
  3. 网络的各类型攻击方式

    2024-01-20 03:18:01       45 阅读
  4. mysql 主从通过mysqldump方式搭建

    2024-01-20 03:18:01       55 阅读
  5. 设计模式——访问者模式

    2024-01-20 03:18:01       51 阅读
  6. Go 语言中的接口类型转换详解

    2024-01-20 03:18:01       53 阅读
  7. 【笔记】认识凸优化

    2024-01-20 03:18:01       50 阅读