nacos注册中心/配置中心的使用

news2024/11/26 16:46:56

Nacos下载:

https://github.com/alibaba/nacos/releases

Nacos启动:

此处为了演示方便,下载的是 Windows版本 nacos-server-2.2.2.zip 。
进入 nacos-server-2.2.2\nacos\bin 文件夹,按shift和右键,选择"在此处打开PowerShell窗口",如果是旧版本的Windows,可以选择打开 cmd。

输入:

 .\startup.cmd -m standalone

启动如下:

版本说明:

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

Spring Boot 版本:2.6.13, 对应 Spring Cloud 版本: 2021.0.5, 对应Spring Cloud Alibaba 版本:2021.0.5.0

Spring Boot 版本:3.0,需要 jdk17。

创建SpringCloud项目

详情见:https://www.cnblogs.com/expiator/p/15844275.html

Maven依赖:

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
        <spring-cloud.version>2021.0.5</spring-cloud.version>
        <spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>${spring-cloud-alibaba.version}</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>${spring-cloud-alibaba.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

启动报错:

  • SpringCloud 启动报错: No spring.config.import property has been defined

缺少以下依赖包:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

bootstrap.properties 文件:

nacos的配置文件,最好写在 bootstrap.properties 文件里面。优先级最高。

配置文件优先级(由高到低):
bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml
若application与bootstrap中有相同的内容,以bootstrap为主

# Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html
server.port=8083
spring.application.name=provider
spring.profiles.active=dev
# 设置配置中心服务端地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.prefix=provider
spring.cloud.nacos.config.file-extension=yaml

# Nacos 配置中心的namespace。需要注意,如果使用 public 的 namcespace ,请不要填写这个值,直接留空即可
spring.cloud.nacos.discovery.namespace=
# Nacos 服务发现与注册配置。
# 其中子属性 server-addr 指定 Nacos 服务器主机和端口
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

ProviderApplication启用类:

记得,不要遗漏类上面的注解。

@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {

    public static void main(String[] args) {  SpringApplication.run(ProviderApplication.class, args);
    }


}

控制层

@RestController
public class ProviderController {

    /**
     *  后面的 :abc 表示默认值为 abc。
     */
    @Value("${config.name:abc}")
    private String configName;


    @GetMapping(value = "/provider/config")
    public String getConfig() {
        return configName;
    }
}

nacos服务列表:

启动服务,在浏览器输入地址:http://127.0.0.1:8848/nacos

然后,打开Nacos服务列表:

可以看到,服务已经注册到Nacos上面了。

nacos配置列表:

启动服务,在浏览器输入地址:http://127.0.0.1:8848/nacos, 打开Nacos配置列表:
点击+号后,新建一个配置,如下:

nacos配置中心

  • 命名空间:
    主要是用于环境隔离。比如 dev环境一个命名空间,test环境一个命名空间。
    默认的命名空间是 public。

  • Data ID:

Data ID的格式为:

${prefix}-${spring.profile.active}.${file-extension}

以上的 这几个配置,都是在 bootstrap.properties中配置过的。

spring.profiles.active=dev
spring.cloud.nacos.config.prefix=provider
spring.cloud.nacos.config.file-extension=yaml

拼起来Data ID就是 provider-dev.yaml。
服务启动之后,会去这个Data Id里面找相关的配置。

如果不清楚自己配置的 Data Id是什么,也可以搜索启动的日志,搜索日志关键字:Nacos Config,
可以看到类似内容:

refresh.NacosContextRefresher    : [Nacos Config] Listening config: dataId=provider-dev.yaml, group=DEFAULT_GROUP

查看配置

启动服务之后,调用接口 localhost:8083/provider/config,可以看到,已经读取到了命名空间里面的 Data Id 的配置:

参考资料:

https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html

https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery

https://nacos.io/zh-cn/docs/v2/ecology/use-nacos-with-spring-cloud.html

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

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

相关文章

【快速使用ShardingJDBC的哈希分片策略进行分库分表】

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容&#x1f34a;1.引入maven依赖&#x1f34a;2.启动类上添加注解MapperScan&#x1f34a;3.添加application.properties配置&#x1f34a;4.普通的自定义实体类&#x1f34a;5.写个测试类验证一下&#x1f34a;6.控制台打印…

[动态规划] (十三) 简单多状态 LeetCode 740.删除并获得点数

[动态规划] (十三) 简单多状态: LeetCode 740.删除并获得点数 文章目录 [动态规划] (十三) 简单多状态: LeetCode 740.删除并获得点数题目解析解题思路状态表示状态转移方程初始化和填表顺序返回值 代码实现总结 740. 删除并获得点数 题目解析 (1) 给定一个整数数组。 (2) 选…

魔法导航菜单

效果展示 CSS 知识点 使用 box-shadow 属性实现不定项曲面 整体页面布局 <div class"navigation"><ul><li class"active"><a href"#"><span class"icon"><ion-icon name"home-outline"…

项目管理之项目时间箱内容补充

本章节内容为前述文章“项目管理之如何召开项目时间箱启动会议”的补充内容&#xff0c;请结合阅读。 时间箱管理 包括时间箱启动会、时间箱执行与控制、时间箱回顾会三个部分。 时间箱执行与控制包括探索、精进、巩固三个部分&#xff0c;每个部分使用迭代开发技术。 迭代开…

V90伺服 EPOS模式下回原(详细配置+SCL源代码)

TYPE "udtPID" VERSION : 0.1 STRUCT bRun : Bool; bDir : Bool; rSetPoint : Real; // 设置目标值工程量 rInput : Real; // 反馈工程量 Ts : DInt : 500; // 采样时间 Kp : Real : 1.0; // 比例系数 Ti : Re…

C++定位new(placement new)

C定位new(placement new) 普通new是在堆上申请一块内存空间&#xff0c;交由用户自己管理 定位new则是在用户已经申请好的一块空间重复使用&#xff0c;这个空间可以是栈上的也可以是堆上的 1、若是在堆上使用定位new&#xff0c;那么还是需要用户对内存自行管理&#xff0c;避…

希尔排序原理

目录&#xff1a; 一、希尔排序与插入排序 1&#xff09;希尔排序的概念 2&#xff09;插入排序实现 二、希尔排序实现 一、希尔排序与插入排序 1&#xff09;希尔排序的概念 希尔排序(Shells Sort)是插入排序的一种又称“缩小增量排序”&#xff08;Diminishing Incremen…

Python进阶教程:pandas数据分析实践示例总结

文章目录 前言一、分析数据文件二、数据预处理关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 前言 在近日的py…

RestTemplate配置和使用

在项目中&#xff0c;如果要调用第三方的http服务&#xff0c;就需要发起http请求&#xff0c;常用的请求方式&#xff1a;第一种&#xff0c;使用java原生发起http请求&#xff0c;这种方式不需要引入第三方库&#xff0c;但是连接不可复用&#xff0c;如果要实现连接复用&…

武汉凯迪正大—电能质量分析仪功能介绍

功能介绍&#xff1a; 测试功能&#xff1a; 波形实时显示&#xff08;4路电压/4路电流&#xff09;&#xff1b;电压和电流真有效值&#xff1b;电压直流成份&#xff1b;电流和电压峰值&#xff1b;电流和电压一段时间内的最大/最小值&#xff1b;相量图显示&#xff1b;各相…

深入浅出理解ResNet网络模型+PyTorch实现

温故而知新&#xff0c;可以为师矣&#xff01; 一、参考资料 原始论文&#xff1a;Identity Mappings in Deep Residual Networks 原论文地址&#xff1a;Deep Residual Learning for Image Recognition ResNet详解PyTorch实现 PyTorch官方实现ResNet 【pytorch】ResNet18、…

10道高频Vuex面试题快问快答

※其他的快问快答&#xff0c;看这里&#xff01; 10道高频Qiankun微前端面试题快问快答 10道高频webpack面试题快问快答 20道高频CSS面试题快问快答 20道高频JavaScript面试题快问快答 30道高频Vue面试题快问快答 面试中的快问快答 快问快答的情景在面试中非常常见。 在面试过…

凡泰极客亮相香港金融科技周,投身大湾区数字化建设

11月2-3日&#xff0c;作为全球性的金融科技盛会——香港金融科技周2023于香港会展中心隆重开幕。大会云集全球500多家金融机构及金融科技企业参展&#xff0c;吸引超过3万余人次相关人士参会。 凡泰极客作为中国领先的金融科技企业受邀参会&#xff0c;吸引了多领域专家、投资…

php加密解密的用法(对称加密,非对称加密)

加密和摘要的区别 ***摘要&#xff1a;是从已知的数据中&#xff0c;通过摘要计算出一个值&#xff0c;一个数据对应一个或多个摘要的值 *** 比如&#xff1a;md5 和 sha1 sha256 hash 就是得到一个特定的值 &#xff0c;同一个数据得到的md5 是一样的&#xff0c;不会改变的 比…

BeanUtils.copyProperties浅拷贝的坑你得知道?

今天想写一篇文章&#xff0c;主要关于深拷贝和浅拷贝相关的&#xff0c;主要是最近写代码的时候遇到一个BUG&#xff0c;刚好涉及到浅拷贝导致的问题。 问题背景 现在有一个需要是需要修改门店信息&#xff0c;门店也区分父门店和子门店&#xff0c;父门店被编辑更新是需要通过…

数据中台之数据分析

效果界面 技术方案 Notebook集成 在您的数据平台上,创建一个能够与Jupyter Notebook通讯的服务。通过Jupyter Notebook的HTTP API与Notebook实例进行交互,执行代码、获取输出等。用户界面 在数据开发/数据分析的代码框右上方,添加一个机器人样式的图标,用户点击后可以调起…

很多个pdf怎么合并在一起?

很多个pdf怎么合并在一起&#xff1f;作为一个办公室的伙伴&#xff0c;对于PDF格式肯定不会陌生。它强大的功能为我们的工作提供了许多便利。由于PDF文件格式的稳定性和安全性较高&#xff0c;我们通常在工作或学习中使用它来传输文件&#xff0c;很多人都喜欢将办公文件都做成…

linux系统下读取当前硬盘的温度

这个其实很简单&#xff0c;借助于smartctl工具&#xff08;Ubuntu默认安装好了&#xff09;&#xff0c;标红的部分就是当前温度&#xff0c;单位是摄氏度。 sudo smartctl -l scttempsts /dev/sda

自然语言处理中的文本聚类:揭示模式和见解

一、介绍 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;文本聚类是一种基本且通用的技术&#xff0c;在信息检索、推荐系统、内容组织和情感分析等各种应用中发挥着关键作用。文本聚类是将相似文档或文本片段分组为簇或类别的过程。这项技术使我们能够发现隐藏的…

AutoCompleteTextView自动完成文本框

1.AutoCompleteTextView的常用XML属性&#xff1a; andraid:completionHint 用于为弹出的下拉菜单指定提示标题&#xff0c;值为String&#xff1b;可不加。 android:completionThreshold(门槛) 用于指定用户至少输入几个字体才会显示提示&#xff0c;值为int。andraid:dro…