.NetCore 接入 Nacos,实现配置中心和服务注册

因历史项目(.Netcore3.1)需要,需要使用Nacos作为配置中心和服务发现,本文作为记录使用Nacos的笔记。

文章目录

      • 一、相关资料
      • 二、Nacos后台增加配置
      • 三、代码接入
          • 1、在`appsettings.json`中加入配置
          • 2、`Program`调整
          • 3、`Startup`调整
          • 4、启动项目,获取配置,查看服务注册情况

一、相关资料

Nacos的.Net SDK https://github.com/nacos-group/nacos-sdk-csharp
Nacos官网https://www.nacos.io/

二、Nacos后台增加配置

增加命名空间
在这里插入图片描述
然后在命名空间下增加配置
在这里插入图片描述
在这里插入图片描述

{"AppSettings": {"Str": "val","num": 1,"arr": [1,2,3],"subobj": {"a": "b"}}
}

三、代码接入

首先,创建.netcore web api项目。

1、在appsettings.json中加入配置
"NacosConfig": {"Listeners": [ //配置监听列表,包含多个监听项{"Optional": false, //是否为可选配置。false表示如果配置不存在,应用启动会失败;true表示配置不存在时忽略"DataId": "TimedTaskAPI","Group": "DEFAULT_GROUP" //配置所属的分组,默认为DEFAULT_GROUP},{"Optional": false,"DataId": "Application","Group": "DEFAULT_GROUP"}],"ServerAddresses": [ "http://192.168.5.210:8848/" ], //Nacos 服务器地址列表"DefaultTimeOut": 15000,"Namespace": "8f67799f-0eb9-42b1-94e5-080d9b1c56ea", // 命名空间 ID,用于隔离不同环境的配置和服务,Please set the value of Namespace ID !!!!!!!!"ListenInterval": 1000, //监听间隔时间,单位为毫秒"ServiceName": "App1", //注册到注册中心的服务名称"Weight": 100, //服务权重,用于服务路由时的负载均衡计算"RegisterEnabled": true, //是否启用服务注册"InstanceEnabled": true, //实例是否启用"Ephemeral": true, //是否为临时实例,true表示是临时实例,服务宕机后会被自动摘除"Secure": false, //是否使用安全连接"UserName": "nacos","Password": "nacos","ConfigUseRpc": false, //是否使用 RPC 协议获取配置"NamingUseRpc": false, //是否使用 RPC 协议进行服务发现"NamingLoadCacheAtStart": "", //启动时是否加载服务发现缓存"LBStrategy": "WeightRandom", //负载均衡策略,WeightRandom表示加权随机,WeightRoundRobin表示加权轮询"Metadata": { //服务实例的元数据信息,为键值对形式"aa": "bb","cc": "dd"}
}

webapi未启用rpc时,务必设置ConfigUseRpcNamingUseRpcfalse。否则服务注册不了,也获取不到配置!!!

2、Program调整

增加builder.AddNacosV2Configuration(c.GetSection("NacosConfig"));

public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureAppConfiguration((context, builder) =>{var c = builder.Build();builder.AddNacosV2Configuration(c.GetSection("NacosConfig"));//以上默认是使用Json解析器解析配置,如果使用文本可以以下代码,或者使用yaml解析器//builder.AddNacosV2Configuration(c.GetSection("NacosConfig"), parser: IniConfigurationStringParser.Instance);//builder.AddNacosV2Configuration(c.GetSection("NacosConfig"), parser: YamlConfigurationStringParser.Instance);}).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();});

当前遇到的问题是:不知道如何启用多种格式配置,如:Json+Properties+Ymal。有哪位大佬知道,请不吝赐教。

3、Startup调整

ConfigureServices中增加

services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));services.AddNacosAspNet(Configuration, "NacosConfig");

AppSettings测试代码,未写全

public class AppSettings
{public string Str { get; set; }public int Num { get; set; }
}
4、启动项目,获取配置,查看服务注册情况

查看服务注册情况
在这里插入图片描述
获取配置

public class NcsController : ControllerBase
{private readonly ILogger<RdsController> _logger;private readonly IConfiguration _configuration;private readonly AppSettings _appSettings;public NcsController(ILogger<RdsController> logger, IConfiguration configuration, IOptionsMonitor<AppSettings> mOptions){_logger = logger;_configuration = configuration;_appSettings = mOptions.CurrentValue;}[HttpGet]public Task<bool> Test(){var s = _appSettings.Str;var str = _configuration["ApiServer"];return Task.FromResult(true);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/920397.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/920397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自学嵌入式第三十天:Linux系统编程-线程的控制

一、线程控制&#xff1a;互斥和同步对于线程的共享资源的竞争的处理&#xff1b;进程也能用&#xff0c;对进程竞争的系统资源的分配&#xff1b;二、互斥1.互斥&#xff1a;在多线程中对临界资源的排他性&#xff08;独占&#xff09;访问&#xff1b;2.互斥机制&#xff08;…

EtherNet/IP 转 Modbus 协议网关(三格电子)

一、产品概述 1.1 产品用途 SG-EIP-MOD-210 网关可以实现将 Modbus 接口设备连接到 EtherNet/IP 网 络中。用户不需要了解具体的 Modbus 和 EtherNet/IP 协议即可实现将 Modbus 设 备挂载到 EtherNet/IP 接口的 PLC 上&#xff0c;并和 Modbus 设备进行数据交互。拓扑结 构如…

MVCC的作用是什么

问题MVCC的作用是什么我的回答MVCC&#xff0c;全称是Multi-Version Concurrency Control&#xff0c;多版本并发控制。这是数据库管理系统中一种常用的并发控制机制&#xff0c;主要用于提高数据库的并发性能。简单来说&#xff0c;MVCC的核心思想是&#xff0c;当有人读取数据…

A股大盘数据-20250828 分析

&#x1f4ca; 一、大盘数据深度分析&#x1f4b0; 量能分析&#xff08;核心指标&#xff09;总成交额&#xff1a;30013.32亿元。这是一个天量级别&#xff0c;确认了增量资金大幅入场&#xff0c;行情基础非常扎实&#xff0c;市场活跃度极高。市场分化&#xff1a;上涨2868…

安卓闪黑工具:aosp16版本Winscope之搜索功能剖析

背景&#xff1a; 在aosp16的Winscope体验时候发现多了数据的搜索功能&#xff0c;也体验了一下&#xff0c;这个新功能本身Winscope也自带了很多指导提示&#xff0c;主要是用来解决Winscope有时候寻找某个数据&#xff0c;某个layer时候的不便&#xff0c;本文来详细介绍一下…

使用 mcp-use 构建极简 Web 自动化测试智能体「喂饭教程」

使用 mcp-use 构建极简 Web 自动化测试智能体「喂饭教程」 引言 一、项目概述 二、技术架构 1. MCP协议简介 2. 基于mcp-use库的核心组件 2.1 MCPAgent使用 2.2 MCPClient配置 三、环境搭建 1. 依赖安装 2. 环境配置 3. MCP服务器配置 4. 验证MCP服务器连接 5.创建测试脚本 四、…

密码管理中

第一部分&#xff1a;弱加密算法的危害使用弱加密算法&#xff08;如 MD5, SHA-1&#xff0c;甚至不加盐的简单哈希&#xff09;来保护密码是极其危险的&#xff0c;主要危害体现在以下几个方面&#xff1a;1. 极易被破解&#xff08;彩虹表攻击&#xff09;原理&#xff1a;弱…

【mysql】解决Python连接MySQL报错:缺少cryptography库

解决Python连接MySQL报错&#xff1a;缺少cryptography库 在使用 Python 连接 MySQL 数据库时&#xff0c;有时可能会遇到这样的错误&#xff1a; RuntimeError: cryptography package is required for sha256_password or caching_sha2_password auth methods这篇文章将带你快…

告别Java依赖!GISBox三维场景编辑+服务发布一站式工具横评

在地理信息系统&#xff08;GIS&#xff09;技术快速发展的今天&#xff0c;选择一款合适的工具对于提升工作效率和实现项目目标至关重要。GISBox与GeoServer作为两款各具特色的GIS解决方案&#xff0c;分别面向不同的用户需求和应用场景。本文将从界面阅读感、安装复杂度、服务…

智能客服多智能体(知识库问答+情绪感知+工单路由)

一、概述 —— 目标与高层需求 目标:构建一个生产级的智能客服流水线,用多智能体(agent)分工协作完成用户问答、情绪识别并在必要时自动生成/路由工单(ticket)。系统应满足: 高答复准确率:通过 RAG(检索增强生成)把回复基于公司知识库(SOP、FAQ、产品文档)。([Gra…

消息队列核心问题解决方案:从丢失到重复消费的全方位保障

在分布式系统中,消息队列作为解耦、削峰、异步通信的核心组件,其可靠性直接决定了整个系统的稳定性。然而,“消息丢失”“重复消费”“消息积压”等问题却如同隐雷,稍有不慎便会引发数据不一致、业务异常等严重后果。本文将围绕“如何保证消息不丢失、不重复消费”这一核心…

API协作云:API→MCP极速构建MCP服务

一、背景与行业趋势数字化时代&#xff0c;API 是企业互联核心&#xff0c;API 协作云则实现连接能力跃升&#xff1a;高效管理 API 全生命周期&#xff0c;突破传统接口管理局限&#xff0c;通过标准化设计、自动化测试和可视化监控&#xff0c;让团队高效协作&#xff0c;轻松…

重塑可观测性成本:解析Coralogix的智能成本优化之道

在云原生与微服务架构成为主流的今天&#xff0c;可观测性&#xff08;Observability&#xff09;已成为企业确保系统稳定、快速排障的必需品。然而&#xff0c;随着数据量的爆炸式增长&#xff0c;传统的可观测性平台所带来的成本也在急剧攀升。企业常常陷入两难境地&#xff…

实测阿里图像编辑模型Qwen-Image-Edit:汉字也能无痕修改(附实测案例)

现在越来越多的人都开始用 AI 来生成图片了&#xff0c;比如用 AI 生成节日海报、电商图、游戏角色设计、封面图、文章配图等等。效率是真的快&#xff0c;而且往往生成得还都不赖。但有时一个「瑕疵」&#xff0c;会坏了整张图片。使用图像编辑&#xff0c;可能抽半天都抽不到…

为什么软解码依然重要?深入理解视频播放与开发应用(视频解码)

为什么软解码依然重要&#xff1f;深入理解视频播放与开发应用 摘要&#xff1a; 软解码&#xff08;Software Decoding&#xff09;是视频解码中最灵活的一种方式&#xff0c;完全依赖 CPU 来执行压缩算法的逆过程。本文从原理、优势与劣势、典型应用、跨平台实现到未来趋势&a…

大模型微调 Prompt Tuning与P-Tuning 的区别?

Prompt Tuning 和 P-Tuning 都属于 参数高效微调方法&#xff08;PEFT, Parameter-Efficient Fine-Tuning&#xff09;&#xff0c;主要是为了避免对大模型全部参数进行训练&#xff0c;而是通过小规模参数&#xff08;prompt embedding&#xff09;来适配下游任务。但两者的实…

控制系统仿真之PID校正1-系统固有属性(四)

一、PID校正概述PID校正是比例(Proportional)积分&#xff08;Integral&#xff09;微分&#xff08;Derivative&#xff09;校正的简称&#xff0c;是历史最悠久&#xff0c;生命力最强的控制方式。其主要优点有&#xff1a;①原理简单、使用方便②适应性强&#xff0c;可广泛…

C语言————斐波那契数列(例题1)

小博在学习c语言时&#xff0c;总是会遇到一些很典型的例题&#xff0c;如&#xff1a;斐波那契数列&#xff0c;汉诺塔问题&#xff0c;冒泡排列问题&#xff0c;等等。小博决定汇总一下&#xff0c;今天讲清斐波那契数列&#xff0c;后续持续更新。一、斐波那契数列斐波那契数…

Text to Speech技术详解与实战:GPT-4o Mini TTS API应用指南

Text to Speech技术详解与实战&#xff1a;GPT-4o Mini TTS API应用指南 一、概述 Text to Speech&#xff08;TTS&#xff0c;文本转语音&#xff09;技术正在广泛应用于博客配音、多语言音频输出与实时语音流等场景。越来越多的开发者希望将自然、流畅的AI语音集成到产品中…

数字ic后端Useful Skew到底怎么玩的?

CCOpt的Useful Skew到底怎么玩的&#xff1f;上图里&#xff0c;我们可以看到&#xff0c;在CCOpt之前&#xff0c;这个chain上的slack为200ps/-100ps/200ps。我们想修复这-100ps的slack&#xff0c;就有两个策略了&#xff1a;方法1&#xff1a;把F1的delay提前&#xff1b;方…