.netcore使用nacos服务注册与发现
侧边栏壁纸
  • 累计撰写 76 篇文章
  • 累计收到 49 条评论
C#

.netcore使用nacos服务注册与发现

有码挺好
2021-01-27 / 0 评论 / 182 阅读 / 正在检测是否收录...

今年5月份公司要做.netcore 微服务架构,就想到了用Nacos来管理各个微服务;Nacos是一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台,它提供了一组简单易用的特性集,帮助我们快速实现动态服务发现、服务配置、服务元数据及流量管理。

安装Nacos包
Install-Package nacos-sdk-csharp -Version 1.3.2
Install-Package nacos-sdk-csharp.AspNetCore -Version 1.3.2
Install-Package nacos-sdk-csharp.Extensions.Configuration -Version 1.3.2
Install-Package nacos-sdk-csharp.IniParser -Version 1.3.2
Install-Package nacos-sdk-csharp.YamlParser -Version 1.3.2
加入Nacos配置

appsettings.json 文件中加入如下节点;

  //读取配置中心配置
  "NacosConfig": {
    "Listeners": [
      {
        "Optional": false,
        //配置名称
        "DataId": "arg-cscomm-dev",
        //配置组名
        "Group": "DEV_GROUP"
      }
    ],
    //租户名称,一般与服务名一致
    "Tenant": "ia-csuser",
    //所属命名空间id
    "Namespace": "ia-arg-dev",
    "ServerAddresses": ["http://192.168.200.50:8848/"],
    "UserName": "nacos",
    "Password": "nacos",
    "ConfigUseRpc": true,
    "NamingUseRpc": true
  },
  //Nacos服务注册发现配置
  "nacos": {
    "ServerAddresses": ["http://192.168.200.50:8848/"],
    "DefaultTimeOut": 15000,
    //所属命名空间id
    "Namespace": "ia-arg-dev",
    //nacos登录用户
    "UserName": "nacos",
    //nacos登录密码
    "Password": "nacos",
    "ListenInterval": 1000,
    //当前服务注册名称
    "ServiceName": "ia-csuser",
    //服务权重
    "Weight": 100,
    "ConfigUseRpc": true,
    "NamingUseRpc": true
  }
读取远程配置

Program.cs 文件中注入Nacos配置服务,即可读取配置中心对应配置。

    public class Program
    {
        public static void Main(string[] args)
        {
            try
            {
                CreateWebHostBuilder(args).Build().Run();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

        public static IHostBuilder CreateWebHostBuilder(string[] args)
        {
            return Host.CreateDefaultBuilder(args)
                  .ConfigureWebHostDefaults(builder =>
                  {
                      builder.ConfigureAppConfiguration((env, config) =>
                      {
                          var c = config.Build();
                          config.SetBasePath(env.HostingEnvironment.ContentRootPath);
                          config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
                          config.AddEnvironmentVariables();
                          //注入Nacos配置中心服务,用于读取远程配置
                          config.AddNacosV2Configuration(c.GetSection("NacosConfig"));
                      })
                       .UseStartup<Startup>();
                  });
        }
    }
注入Nacos服务

Startup.cs文件 ConfigureServices 方法中加入如下代码,即可完成nacos服务注入;

public Startup(IConfiguration configuration)
 {
     Configuration = configuration;
 }
public IConfiguration Configuration { get; }

public void ConfigureServices(IServiceCollection services)
 {
     //注入Nacos服务
     services.AddNacosAspNet(Configuration);
     //注入微服务互调
     services.AddNacosV2Naming(Configuration);
 }
1

评论 (0)

取消