.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
英文地址,請注明出處:http://en.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;方…