首页 > 其他分享 >4.NET中使用Nacos分布式配置中心

4.NET中使用Nacos分布式配置中心

时间:2024-02-14 20:44:20浏览次数:29  
标签:false 配置文件 Nacos nacos NET configuration true public 分布式

nuget 安装:
1. nacos-sdk-csharp
2. nacos-sdk-csharp.AspNetCore
3. nacos-sdk-csharp.Extensions.Configuration

创建WebAPI项目,ConfigCenter.NacosService1

 

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "NacosConfig": {
    "Listeners": [ // 配置文件,至少要有一个
      {
        "Optional": true, // 是否可选,true:可以不创建,但控制台会给出警告,false:必须要有
        "DataId": "app1-dev.josn", // 配置文件
        "Group": "DEFAULT_GROUP"
      },
      {
        "Optional": true, // 是否可选,true:可以不创建,但控制台会给出警告,false:必须要有
        "DataId": "app1-common", // 配置文件
        "Group": "DEFAULT_GROUP"
      }
    ],
    "Namespace": "production",// 此处不要写public,必须设置一个你自己的命名空间
    "ServerAddresses": [ "http://127.0.0.1:8848/" ], // 服务器地址
    "UserName": "nacos", // nacos 登录账号
    "Password": "你的密码", // nacos 登录密码
    "ConfigUseRpc": false, // 配置中心是否使用Rpc协议通信
    "NamingUseRpc": false // 注册中心是否使用RPC协议通信
  }
}
var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
builder.Services.AddSwaggerGen();
builder.Host.UseNacosConfig("NacosConfig");
builder.Services.AddNacosAspNet(builder.Configuration);//服务注册


var app = builder.Build();

 

添加配置

Listeners中有多少个,这里可以配置多少管理。

 

 

 

添加控制器,并运行

[ApiController]
[Route("[controller]/[action]")]
public class HomeController:ControllerBase
{
    private readonly IConfiguration _configuration;

    public HomeController(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    [HttpGet]
    public IActionResult GetConnStr()
    {
        var connectionString = _configuration.GetConnectionString("MySQL");
        var redis = _configuration["redis"];
        
        return Ok(new{connectionString,redis});
    }
}

 

多环境配置中心

添加两个命名空间dev为开发环境,production为生产环境

 在配置列表里去添加配置

 dev开发环境:

 Data ID 需要改成app1-common

 

 production生产环境

 

 

 设置开发环境下配置文件appsettings.Development.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "NacosConfig": {
    "Listeners": [ // 配置文件,至少要有一个
      {
        "Optional": true, // 是否可选,true:可以不创建,但控制台会给出警告,false:必须要有
        "DataId": "app1", // 配置文件
        "Group": "DEFAULT_GROUP"
      },
      {
        "Optional": true, // 是否可选,true:可以不创建,但控制台会给出警告,false:必须要有
        "DataId": "app1-common", // 配置文件
        "Group": "DEFAULT_GROUP"
      }
    ],
    "Namespace": "dev",// 此处不要写public,必须设置一个你自己的命名空间
    "ServerAddresses": [ "http://101.43.242.9:8848/" ], // 服务器地址
    "UserName": "nacos", // nacos 登录账号
    "Password": "xuyubing@19910629", // nacos 登录密码
    "ConfigUseRpc": false, // 配置中心是否使用Rpc协议通信
    "NamingUseRpc": false // 注册中心是否使用RPC协议通信
  }
}

 

设置生产环境下配置文件appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "NacosConfig": {
    "Listeners": [ // 配置文件,至少要有一个
      {
        "Optional": true, // 是否可选,true:可以不创建,但控制台会给出警告,false:必须要有
        "DataId": "app1", // 配置文件
        "Group": "DEFAULT_GROUP"
      },
      {
        "Optional": true, // 是否可选,true:可以不创建,但控制台会给出警告,false:必须要有
        "DataId": "app1-common", // 配置文件
        "Group": "DEFAULT_GROUP"
      }
    ],
    "Namespace": "production",// 此处不要写public,必须设置一个你自己的命名空间
    "ServerAddresses": [ "http://127.0.0.1:8848/" ], // 服务器地址
    "UserName": "nacos", // nacos 登录账号
    "Password": "你的密码", // nacos 登录密码
    "ConfigUseRpc": false, // 配置中心是否使用Rpc协议通信
    "NamingUseRpc": false // 注册中心是否使用RPC协议通信
  }
}

 

设置启动配置文件launchSettings.json

ASPNETCORE_ENVIRONMENT有三种模式:Development(开发环境),Production(生产环境),Staging(预上线)

"http": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "launchUrl": "swagger",
      "applicationUrl": "http://192.168.10.13:5152",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },

 

控制器内写一个方法过去配置信息

[ApiController]
[Route("[controller]/[action]")]
public class HomeController:ControllerBase
{
    private readonly IConfiguration _configuration;

    public HomeController(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    [HttpGet]
    public IActionResult GetConnStr()
    {
        var connectionString = _configuration.GetConnectionString("MySQL");
        var redis = _configuration["redis"];
        
        return Ok(new{connectionString,redis});
    }
}

 

只要修改 launchSettings.json里的ASPNETCORE_ENVIRONMENT的Production和Development就可以切换获取配置信息

 

标签:false,配置文件,Nacos,nacos,NET,configuration,true,public,分布式
From: https://www.cnblogs.com/MingQiu/p/18015573

相关文章

  • 【XV6】 networking
    代码:https://github.com/JasenChao/xv6-labs.gitE1000网络设备驱动题目已经在kernel/e1000.c中给出了E1000的初始化函数和发送接收函数,要求完善发送和接收的功能。其他相关的代码,上层的网络协议在kernel/net.c和kernel/net.h中。PCI总线上搜索网卡的代码在kernel/pci.c中://t......
  • dotnet seer agv连接
    SeerAGV\Program.csusingSeer.SeerSocket;varseer=newSeerSocket();varmsg=seer.Send(0x0410,"""{"motor_names":["motor1"]}""",19204);Console.WriteLine(msg);//System.Console.ReadKey();Seer......
  • 在k8S中,简述Kubernetes网络策略是什么?
    在Kubernetes(k8s)中,网络策略(NetworkPolicy)是一种资源对象,用于管理集群内部的网络通信规则。它允许管理员定义哪些Pod可以与哪些其他Pod进行通信,从而实现更细粒度的网络访问控制。具体来说:网络策略规范(NetworkPolicyspec):定义了在一个命名空间内应用的具体网络策略规则,包括要限......
  • .NET 团队公布.NET 9开发目标 并发布.NET9的首个预览版
    在一篇博文中我们对.NET9的愿景[1]:.NET团队概述了.NET9的开发目标和最终愿景,涵盖两大重点领域:云原生和智能应用程序开发。它在继.NET8之后,继续强化对云原生应用和性能的支持。.NET9预览版1已经在2024年2月13日发布,与往常一样,.NET9将在整个平台上提供性能、生产力、安全......
  • 3.在NET.API中去使用Nacos
    nuget安装:1.nacos-sdk-csharp1.3.42.nacos-sdk-csharp.AspNetCore1.3.43.nacos-sdk-csharp.Extensions.Configuration1.3.41.新建项目NacosService1,NacosService2,和NacosClient配置NacosService1的appsettings.json,NacosService2也要配哈{"Logging":{&quo......
  • 【译】使用.NET将WebAssembly扩展到云(一)
    原文|RichardLander翻译|郑子铭WebAssembly(Wasm)是一种令人兴奋的新虚拟机和(汇编)指令格式。Wasm诞生于浏览器,是Blazor项目的重要组成部分。Wasm的第二个行动是针对应用程序和功能的云计算。WebAssembly系统接口(WASI)是新的推动者,为WebAssembly代码提供了一种安......
  • ASP.NET Core 开发者指南
    1简介我个人整理了ASP.NETCore开发者路线图目录,并在学习过程中的整理了一些读书笔记、学习心得等资料,希望与大家共同进步。2目录2.1C#委托,事件和Lambda表达式异步编程(或多线程编程)2.2一般开发技能Git:高效团队协作的利器使用GitHub进行协作开发的综合介绍2.3数......
  • 分布式事务详解
    概述随着互联网的发展,软件系统由原来的单体应用转变为分布式应用。分布式系统把一个单体应用拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作。这种分布式系统下不同服务之间通过远程协作完成的事务称之为分布式事务,例如用户注册送积分事务、创建订单......
  • 开源.NetCore通用工具库Xmtool使用连载 - OSS文件上传篇
    【Github源码】《上一篇》介绍了Xmtool工具库中的图像处理类库,今天我们继续为大家介绍其中的OSS文件上传类库。将本地文件上传到服务器是软件系统经常会遇到的需求,例如:设置用户头像,上传Excel报表等等;涉及到网络访问性能、存储空间等因素的考虑,通常我们会选择使用第三方的对象......
  • 在k8S中,Kubernetes RBAC及其特点(优势)是什么?
    在Kubernetes(k8S)中,Role-BasedAccessControl(RBAC)是一种强大的权限管理和访问控制机制。它允许集群管理员细粒度地控制用户、组或服务账户对KubernetesAPI资源的访问权限。特点和优势:细粒度授权:RBAC提供了一种基于角色的灵活授权模式,可以根据角色定义不同级别的API访问权限......