.net core 6 集成nacos的服务注册和配置中心

news2024/11/19 22:36:31

1、安装nuget包

2、加上配置文件

"nacos": {
  "ServerAddresses": [ "http://127.0.0.1:8848" ],
  "GroupName": "DEFAULT_GROUP",
  "ClusterName": "DEFAULT",
  "ServiceName": "webapi",
  "DefaultTimeOut": 5000,
  "Namespace": "public",
  "Password": "nacos",
  "UserName": "nacos",
  "ListenInterval": 3000,
  "ConfigUseRpc": false,
  "NamingUseRpc": false,
  "Listeners": [
    {
      "Group": "DEFAULT_GROUP",
      "DataId": "webapi",
      "Optional": false
    }
  ]
}

        注意:

        "ConfigUseRpc": false
        "NamingUseRpc": false

        http连接选false否则配置中心可能会获取不到内容

3、注册

//注册nacos
builder.Services.AddNacosAspNet(builder.Configuration);

启动后

4、使用服务发现

/// <summary>
/// 服务发现-调用
/// </summary>
/// <returns></returns>
[HttpPost("find")]
public async Task<string> Find([FromServices] INacosNamingService nacosNaming)
{
    Instance instance = await nacosNaming.SelectOneHealthyInstance("webapi", "DEFAULT_GROUP");
    string ip = instance.GetIpPort();
    HttpTool tool = new HttpTool();

    string str = await tool.PostSendMessage($"http://{ip}/nacos/get", string.Empty);

    return str;
}
/// <summary>
/// 得到ip和端口
/// </summary>
/// <param name="instance"></param>
/// <returns></returns>
public static string GetIpPort(this Instance instance)
{
    return $"{instance.Ip}:{instance.Port}";
}

5、注册配置中心

//配置中心
builder.Services.AddNacosV2Config(builder.Configuration);

随意添加配置

6、使用配置中心

/// <summary>
/// 配置中心
/// </summary>
/// <param name="nacosConfig"></param>
/// <returns></returns>
[HttpPost("config")]
public async Task<string> GetConfig([FromServices] INacosConfigService nacosConfigService)
{
    string str = nacosConfigService?.GetConfigAndSignListener("test", "DEFAULT_GROUP", 3000, new Tools.ConfigListener()).Result ?? "";
    NacosTool? nacosTool = str.JsonTo<NacosTool>();

    return "ok";
}

7、配置变化的监听方法,结合第6点

/// <summary>
/// 配置变化监听
/// </summary>
public class ConfigListener : IListener
{
    /// <summary>
    /// 监听方法
    /// </summary>
    /// <param name="configInfo"></param>
    public void ReceiveConfigInfo(string configInfo)
    {
        Trace.WriteLine("接收到配置变化信息");
    }
}

然后自由发挥吧

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

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

相关文章

【Linux实用篇】项目部署 基于Shell脚本自动部署

目录 1. 项目部署 1.1 手动部署项目 1.2 基于Shell脚本自动部署 1.2.1 介绍 1.2.2 推送代码到远程 1.2.3 Git操作 1.2.4 Maven安装 1.2.5 Shell脚本准备 1.2.6 Linux权限 1.2.7 授权并执行脚本 1.2.8 设置静态IP 1. 项目部署 之前我们讲解Linux操作系统时&#xff0…

基于拓扑图与领导跟随法的编队控制算法

matlab2020可运行 https://download.csdn.net/download/ljjjjjjjjjjj/88750436

导航与定位技术已成为移动机器人的核心技术之一

随着移动机器人技术的不断发展和应用领域的扩大&#xff0c;导航与定位技术已成为移动机器人的核心技术之一。本文将介绍移动机器人导航与定位技术的发展现状、技术前沿和面临的挑战。 ​ 一、导航与定位技术的发展现状 移动机器人的导航与定位技术是实现自主移动的关键。目前…

Vscode——运行java项目

1、安装JDK&#xff08;已安装请忽略&#xff09; 教程&#xff1a;https://blog.csdn.net/qq812457115/article/details/117451011 验证是否已安装&#xff0c;命令符输入 java -version2、安装Maven&#xff08;已安装请忽略&#xff09; 教程&#xff1a;https://blog.csdn…

LeetCode刷题---反转链表II

LeetCode官方给出的解题思路 在需要反转的区间里&#xff0c;每遍历到一个节点&#xff0c;让这个新节点来到反转部分的起始位置。 使用了三指针的思想。 定义三个节点: curr&#xff1a;指向待反转区域的第一个节点 left&#xff1b; next&#xff1a;永远指向 curr 的下一个节…

怎样实现安全便捷的网间数据安全交换?

数据安全交换是指在数据传输过程中采取一系列措施来保护数据的完整性、机密性和可用性。网间数据安全交换&#xff0c;则是需要进行跨网络、跨网段甚至跨组织地进行数据交互&#xff0c;对于数据的传输要求会更高。 大部分企业都是通过网闸、DMZ区、VLAN、双网云桌面等方式实现…

电脑软件:沙盒 Sandboxie 快速上手使用教程

目录 一、软件简介 二、软件功能 三、安装步骤 四、 软件使用 一、软件简介 沙盘Sandboxie中文版是一款非常好用的系统安全工具软件&#xff0c;沙盘Sandboxie中文版能够很好的进行安全测试&#xff0c;拥有一个安全的环境&#xff0c;你不用担心自己的浏览记录被曝光&am…

用 YAML 文件配置 CI/CD 管道

MSBuild 参数: 在使用 MSBuild 命令行生成打包项目(就像在 Visual Studio 中使用向导生成项目一样)之前,生成过程可以通过编辑 Package.appxmanifest 文件中 Package 元素的 Version 属性,来对生成的 MSIX 包进行版本控制。 在 Azure Pipelines 中,可以使用某个表达式来…

【第七在线】打破传统束缚:智能商品计划助力服装企业创新发展

在当今快速变化的市场环境中&#xff0c;服装企业面临着前所未有的挑战和机遇。传统的商品管理模式已无法满足现代市场的需求&#xff0c;企业需要寻求创新的发展路径。智能商品计划作为数字化转型的核心要素&#xff0c;正在为服装企业提供强大的助力&#xff0c;帮助企业打破…

linux基础学习(2):磁盘管理、分区、格式化

1.一些基本概念 一块磁盘从加入到可使用&#xff0c;需要经过3个阶段&#xff1a;分区-格式化-挂载。 1.1分区方式 linux有2种分区方式&#xff1a; &#xff08;1&#xff09;mbr&#xff1a;最大支持2.1T硬盘&#xff0c;最多支持4个分区。这4个分区可以全部为主分区&…

基于位的权限系统

基于位的权限系统是一种利用二进制位运算进行权限管理的技术。在这种系统中&#xff0c;不同的权限被编码为2的幂次方 (例如1、2、4、8等)&#xff0c;每个权限对应一个独立的二进制位&#xff08;可想而知运算速度是非常快的&#xff09;。通过将这些权限值组合在一起形成一个…

[ceph] ceph之分布式存储

分布式存储的类型 ●块存储&#xff08;例如硬盘&#xff0c;一般是一个存储被一个服务器挂载使用&#xff0c;适用于容器或虚拟机存储卷分配、日志存储、文件存储&#xff09; 就是一个裸设备&#xff0c;用于提供没有被组织过的存储空间&#xff0c;底层以分块的方式来存储数…

04-《人月神话》有礼貌的固执-中译本纠错及联想

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 2001年&#xff0c;我们翻译《人月神话》的时候&#xff0c;由于水平有限&#xff0c;译文中存在不少错误。 这些年&#xff0c;随着阅历的增长&#xff0c;在重读的时候偶尔也会有“…

Python GUI库大汇总

所有程序都是基于命令行的&#xff0c;这些程序可能只有一些“专业”的计算机人士才会使用。例如前面编写的五子棋等程序&#xff0c;恐怕只有程序员自己才愿意玩这么“糟糕”的游戏&#xff0c;很少有最终用户愿意对着黑乎乎的命令行界面敲命令。 相反&#xff0c;如果为程序…

Kafka 的 Consumer Group 解读

作为一份笔记&#xff0c;本文再次梳理一下 Kafka 的 Consumer Group。我们知道&#xff0c;一个 Topic 往往会有多个 Partition&#xff0c;一条消息只会被写到一个 Kafka 的 Partition 中&#xff0c;那 Consumer 是怎么消费 Message 的呢&#xff1f; Consumer Group 又从中…

Linux用户提权

新建用户 用root账户修改文件&#xff0c;添加信任用户 使用sudo提权&#xff0c;可以使用 **root删除新建账户**

写点东西《最佳 Web 框架不存在 》

写点东西《&#x1f947;最佳 Web 框架不存在 &#x1f6ab;》 TLDR&#xff1b;您选择的 Web 应用程序框架并不重要。嗯&#xff0c;它很重要&#xff0c;但并不像其他人希望您相信的那样重要。 2024 年存在如此多的库和框架&#xff0c;而且最好的库和框架仍然备受争议&…

Java_线程池

一、线程池 4.1 线程池概述 线程池就是一个可以复用线程的技术。 要理解什么是线程复用技术&#xff0c;我们先得看一下不使用线程池会有什么问题&#xff0c;理解了这些问题之后&#xff0c;我们在解释线程复用同学们就好理解了。 假设&#xff1a;用户每次发起一个请求给…

硬盘重新分区怎么恢复分区之前的文件?

分区是常见的故障&#xff0c;通常由多种原因引起。一方面&#xff0c;硬盘老化或者受到损坏可能会导致分区表出现问题&#xff1b;另一方面&#xff0c;用户误操作&#xff0c;如格式化或分区不当&#xff0c;也可能导致分区丢失。针对此问题&#xff0c;解决方法包括使用专业…

无人超市系统的设计与实现:从需求分析到实际应用

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…