.net使用nacos配置,手把手教你分布式配置中心

net,使用,nacos,配置,手把手,分布式,中心 · 浏览次数 : 512

小编点评

**1. 创建项目** 创建一个新项目并添加 Nacos 依赖项: ```csharp dotnet new myproject -pr NuGet.org/Microsoft.AspNetCore.Mvc -i nacos-sdk-csharp ``` **2. 配置 Nacos** 打开 `appsettings.json` 并添加以下配置: ```json { "NacosConfig": { "Listeners": [ { "Optional": false, "DataId": "netTestConfig", "Group": "zltest" } ], "Namespace": "bf644fca-1276-415a-89de-428331e96a46", "ServerAddresses": [ "172.16.9.88:8848" ], "ServiceName": "netTest", "UserName": "nacos", "Password": "nacos", "GroupName": "zltest" } } ``` **3. 注册服务** 在 `Program.cs` 中添加以下代码注册 Nacos: ```csharp builder.Services.AddNacosAspNet(builder.Configuration, section: "NacosConfig", parser: null, logAction: null); ``` **4. 配置 Nacos** 创建一个名为 `NacosConfig` 的配置文件并添加以下内容: ```json { "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*\", "NacosConfig": { "Listeners": [ { "Optional": false, "DataId": "netTestConfig", "Group": "zltest" } ], "Namespace": "bf644fca-1276-415a-89de-428331e96a46", "ServerAddresses": [ "172.16.9.88:8848" ], "ServiceName": "netTest", "UserName": "nacos", "Password": "nacos", "GroupName": "zltest" }, "DbConfig": { "DbType": 0, "ConnectionString": "Data Source=localhost;port=3306;Initial Catalog=TNBLOG;uid=root;pwd=1234567;CharSet=utf8mb4;Allow User Variables=true;" } } ``` **5. 编写接口** 创建一个新的接口来获取 Nacos 配置: ```csharp [HttpGet("NacosConfig")] public IActionResult GetNacosConfig() { var config = GetConfig(); return Ok(config); } ``` **6. 启动服务** 运行您的服务并访问 `localhost:5000/NacosConfig` 来查看配置。

正文

.net使用nacos配置,手把手教你分布式配置中心

Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

这么优秀的分布式服务管理平台,怎么能不接入呢?

nacos的安装和使用这里就不细说了,可以参考网上教程和官方文档。https://nacos.io/zh-cn/docs/quick-start.html

我们以创建一个webapi项目为例手把手教你使用Nacos进行配置管理和服务注册

1.创建项目

创建一个webapi项目

image

image-1677225608373

image-1677225617432

2、项目配置

添加Nacos依赖

	 <PackageReference Include="nacos-sdk-csharp" Version="1.3.4" />
	 <PackageReference Include="nacos-sdk-csharp.AspNetCore" Version="1.3.4" />
	 <PackageReference Include="nacos-sdk-csharp.Extensions.Configuration" Version="1.3.4" />
	 <PackageReference Include="nacos-sdk-csharp.IniParser" Version="1.3.4" />
	 <PackageReference Include="nacos-sdk-csharp.YamlParser" Version="1.3.4" />

image-1677225638004!

修改appsettings.json

添加nacos配置

"NacosConfig": {
    //配置中心
    "Listeners": [
      {
        "Optional": false,
        "DataId": "netTestConfig",
        "Group": "zltest"
      }
    ],
    //命名空间GUID
    "Namespace": "bf644fca-1276-415a-89de-428331e96a46",
    "ServerAddresses": [ "172.16.9.88:8848" ],
    //服务发现
    "ServiceName": "netTest",
    "GroupName": "zltest"
  }

image-1677225698672

3.Program.cs加载配置

//注册服务
builder.Services.AddNacosAspNet(builder.Configuration,section: "NacosConfig");
//设置nacos配置
builder.Host.UseNacosConfig(section: "NacosConfig", parser: null, logAction: null);

image-1677225762011

4.Nacos 上添加配置文件

image-1677225772499

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "NacosConfig": {
    //配置中心
    "Listeners": [
      {
        "Optional": false,
        "DataId": "netTestConfig",
        "Group": "zltest"
      }
    ],
    //命名空间GUID
    "Namespace": "bf644fca-1276-415a-89de-428331e96a46",
    "ServerAddresses": [ "172.16.9.88:8848" ],
    //服务发现
    "ServiceName": "netTest",
    "UserName": "nacos",
    "Password": "nacos",
    "GroupName": "zltest"
  },
  "DbConfig":{
      "DbType": 0,
      //数据库连接字符串
      "ConnectionString": "Data Source=localhost;port=3306;Initial Catalog=TNBLOG;uid=root;pwd=1234567;CharSet=utf8mb4;Allow User Variables=true;",
      "IsAutoCloseConnection": true
  }
}

5.写个接口显示Naocs的配置

image-1677225784930

6.验证结果

启动服务

服务注册结果

服务列表中显示我们的服务:nettest

image-1677225796392

配置参数获取结果

接口返回nacos上的配置

image-1677225806047

与.net使用nacos配置,手把手教你分布式配置中心相似的内容:

.net使用nacos配置,手把手教你分布式配置中心

.net使用nacos配置,手把手教你分布式配置中心 Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 这么优秀的分布式服务管理平台,怎么能不接入呢? nacos的安装和使用这里就不细说了,可以参考网上教程和官方文档。https://nacos.io/zh-cn/docs

.NET使用CsvHelper快速读取和写入CSV文件

前言 在日常开发中使用CSV文件进行数据导入和导出、数据交换是非常常见的需求,今天我们来讲讲在.NET中如何使用CsvHelper这个开源库快速实现CSV文件读取和写入。 CsvHelper类库介绍 CsvHelper是一个.NET开源、快速、灵活、高度可配置、易于使用的用于读取和写入CSV文件的类

.NET使用原生方法实现文件压缩和解压

前言 在.NET中实现文件或文件目录压缩和解压可以通过多种方式来完成,包括使用原生方法(System.IO.Compression命名空间中的类)和第三方库(如:SharpZipLib、SharpCompress、K4os.Compression.LZ4等)。本文我们主要讲的是如何使用.NET原生方

.NET 使用 OpenTelemetry metrics 监控应用程序指标

上一次我们讲了 OpenTelemetry Logs 与 OpenTelemetry Traces。今天继续来说说 OpenTelemetry Metrics。 随着现代应用程序的复杂性不断增加,对于性能监控和故障排除的需求也日益迫切。在 .NET 生态系统中,OpenTelemetry Metri

.NET使用P/Invoke来实现注册表的增、删、改、查功能

注册表可以用来进行存储一些程序的信息,例如用户的权限、或者某些值等,可以根据个人需要进行存储和删减。 当前注册表主目录: 引用包 Wesky.Net.OpenTools 1.0.5或者以上版本 操作演示: 创建注册表项 设置注册表值 读取注册表值 删除注册表值 删除注册表项 操作演示代码 IRegi

在 .NET 7上使用 WASM 和 WASI

WebAssembly(WASM)和WebAssembly System Interface(WASI)为开发人员开辟了新的世界。.NET 开发人员在 Blazor WebAssembly 发布时熟悉了 WASM。Blazor WebAssembly 在浏览器中基于 WebAssembly 的 .N

C#/.NET这些实用的技巧和知识点你都知道吗?

前言 今天大姚给大家分享一些C#/.NET中的实用的技巧和知识点,它们可以帮助我们提升代码质量和编程效率,希望可以帮助到有需要的同学。 .NET使用CsvHelper快速读取和写入CSV文件 本文主要讲解.NET中如何使用CsvHelper这个开源库快速实现CSV文件读取和写入。 https://m

【译】使用 .NET Aspire 和 Visual Studio 开发云原生应用

我们很高兴地宣布 .NET Aspire 发布,它扩展了 Visual Studio 在云原生应用程序开发方面的能力。.NET Aspire 提供了一个框架和工具,以一种独特的方式,使分布式 .NET 应用程序更容易构建、部署和管理。这种集成旨在使云原生应用程序的开发更加简单和高效。

.NET单元测试使用AutoFixture按需填充的几种方式和最佳实践

AutoFixture是一个.NET库,旨在简化单元测试中的数据设置过程。通过自动生成测试数据,它帮助开发者减少测试代码的编写量,使得单元测试更加简洁、易读和易维护。AutoFixture可以用于任何.NET测试框架,如xUnit、NUnit或MSTest。 默认情况下AutoFixture生成的字

Python使用.NET开发的类库来提高你的程序执行效率

Python由于本身的特性原因,执行程序期间可能效率并不是很理想。在某些需要自己提高一些代码的执行效率的时候,可以考虑使用C#、C++、Rust等语言开发的库来提高python本身的执行效率。接下来,我演示一种使用.NET平台开发的类库,来演示一下Python访问.NET类库的操作实现。类库演示包括