SpringBoot整合Nacos配置中心和注册中心

news2024/11/20 9:33:48

一、背景

公司项目中使用的Nacos作为服务的注册中心和配置中心,但是呢公司的这一套Nacos是经过封装了的,而且封装的不是很友好,想着自己搭建一套标注的Nacos配置中心和服务中心

二、Nacos配置中心和注册中心搭建

2.1 依赖引入

<!--注册中心的依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2021.0.5.0</version>
        </dependency>

        <!-- 配置中心的依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2021.0.5.0</version>
        </dependency>

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

这里需要注意下SpringBoot的版本,不然jar包会有冲突,我这里使用的SpringBoot的版本是这个

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.13</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

 为什么要引入spring-cloud-starter-bootstrap的依赖呢?

答:因为在配置完Nacos注册中心和配置中心后,启动的时候报错如下错误,网上搜了一堆才找到回答。

SpringBoot和SpringCloud版本对应关系:版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub 

2.2 application.yml配置

server:
  port: 9999
spring:
  cloud:
    nacos:
      discovery: #nacos服务注册的配置
        server-addr: 127.0.0.1:8848
        register-enabled: true
        namespace: da8ba5de-6fd4-428c-9e64-7dcb38d28805
  profiles:
    active: dev

2.3 bootstrap.properties配置

#nacos配置中心的相关配置
spring.cloud.nacos.config.file-extension=yaml 
spring.cloud.nacos.config.namespace=da8ba5de-6fd4-428c-9e64-7dcb38d28805
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.group=DEFAULT_GROUP
#注意:应用的名称必须要在这里配置;不然在修改了Nacos配置之后,无法实时更新配置信息
spring.application.name=demo

2.4 启动入口加注解

加入@EnableDiscoveryClient注解

@EnableDiscoveryClient
@SpringBootApplication(scanBasePackages = {"com.example"})
@MapperScan({"com.example.demo.mapper"})
public class DemoApplication {

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

}

2.5 Nacos配置类

网上很多直接使用@Value注解的,但是在实际使用的过程中,发现@Value注解会导致更改了的配置不会实时刷新,所以最好是@RefreshScope和@ConfigurationProperties配合一起使用。

@RefreshScope
@Data
@Configuration
@ConfigurationProperties(prefix = "demo")
public class DemoPropertites {

    private String test;
}
@RestController
@RequestMapping("/nacos")
public class NacosController {
    @Resource
    private DemoPropertites demoPropertites;



    @RequestMapping("/config")
    public String getConfig(){
        return demoPropertites.getTest();
    }
}

2.6  启动本地Nacos服务

2.6.1 本地Nacos服务下载

Releases · alibaba/nacos · GitHub

我这边使用的是nacos-server-2.2.2版本的,刚开始使用的是1.4.5版本,发现有问题

2.6.2 本地Nacos启动

直接参考官网的启动方式:https://github.com/alibaba/nacos 

2.7 本地Nacos访问

localhost:8848/nacos  账号:nacos 密码:nacos

 2.8 创建Nacos命名空间

如果不创建命名空间的话,默认使用的是pulic保留空间;我创建了一个dev的命名空间

2.9 创建配置文件

在dev命名空间下,创建demo.yaml配置文件;注意Data Id的命名,默认情况是${spring.application.name}.${spring.cloud.nacos.config.file-extension}
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

spring.application.name:应用的名称

spring.profiles.active:当前启动的环境

spring.cloud.nacos.config.file-extension:nacos配置文件的后缀,支持yaml和properties

 2.10 启动项目

启动完成后Nacos会监听如下三个文件,如果有改动,则会更新配置文件信息

 未修改配置前,nacos数据获取:

修改配置后,nacos数据获取:

服务注册:

3. Nacos多环境配置

主要有以下三个环境的配置文件

 

开发环境:bootstrap-dev.properties

spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.namespace=da8ba5de-6fd4-428c-9e64-7dcb38d28805
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.group=DEFAULT_GROUP

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.register-enabled=true
spring.cloud.nacos.discovery.namespace=da8ba5de-6fd4-428c-9e64-7dcb38d28805

测试环境:bootstrap-test.properties

spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.namespace=52990b07-f6dd-4f24-b2e3-2523516d368b
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.group=DEFAULT_GROUP

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.register-enabled=true
spring.cloud.nacos.discovery.namespace=52990b07-f6dd-4f24-b2e3-2523516d368b

生产环境:bootstrap-pro.properties

spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.namespace=4d73106d-10f7-4893-bd75-a8b12244304d
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.group=DEFAULT_GROUP

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.register-enabled=true
spring.cloud.nacos.discovery.namespace=4d73106d-10f7-4893-bd75-a8b12244304d

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

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

相关文章

端点中心配置

什么是桌面管理 桌面管理是管理组织内所有计算机系统的综合方法。尽管名称如此&#xff0c;桌面管理还包括监督组织内使用的笔记本电脑和其他计算设备。对于IT经理来说&#xff0c;使用户的计算机保持最新状态可能是一个挑战&#xff0c;特别是考虑到升级软件以防止安全漏洞的…

【Ubuntu18.04】Docker配置镜像源

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,YOLO领域博主爱笑的男孩。擅长深度学习,活动,YOLO,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个人简…

【二维矩阵如何存储在一维数组中(行优先和列优先)】

列优先和行优先的性能取决于具体的硬件架构和代码访问模式。在现代计算机中,内存访问的局部性(locality of reference)对性能至关重要。局部性分为两类:时间局部性(temporal locality)和空间局部性(spatial locality)。时间局部性表示最近访问过的数据项很可能在不久的…

加拿大留学思路自理

首先先看加拿大地图 留学加拿大的思路就应该是这样的&#xff1a; 1、清楚自己的需求 比如自己是移民向&#xff0c;所以首先就应该去加拿大官方网站Immigration and citizenship - Canada.ca 因为自己是理工科&#xff0c;之前在网络上看到别人总结的信息是说BC省理工类硕士…

【C++学习】类模板

类模板语法 #include<iostream> #include<string> using namespace std; //模板并不是万能的&#xff0c;有些特定数据类型&#xff0c;需要具体化方式做特殊实现 template<class NameType,class AgeType> class person { public:person(NameType name, Age…

k-means、决策树、svm算法总结

一、k-means算法 聚类算法&#xff1a; 一种典型的 无监督 学习算法&#xff0c;主要用于将相似的样本自动归到一个类别中。 在聚类算法中根据样本之间的相似性&#xff0c;将样本划分到不同的类别中&#xff0c;对于不同的相似度计算方法&#xff0c;会得到不同的聚类结果&…

【亲测有效】GnuTLS recv error (-110): The TLS connection was non-properly terminated.

【亲测有效】GnuTLS recv error [-110]: The TLS connection was non-properly terminated. 问题描述解决方法一&#xff1a;【取消代理】方法二【如果取消代理无用】方法三【这种方法对我有效】 问题描述 fatal: unable to access ‘https://github.com/openai/CLIP.git/’: …

JMeter压力测试案例(商品超卖并发问题)

什么要对接口压测呢? 压力测试可以用来验证软件系统的稳定性和可靠性&#xff0c;在压力下测试系统的性能和稳定性&#xff0c;发现并解决潜在的问题&#xff0c;确保系统在高负载情况下不会崩溃。压力测试可以用来评估软件系统的容量和性能&#xff0c;通过模拟高负载情况下…

2023年5月学习,6月考试DAMA-CDGA/CDGP数据治理认证

6月18日DAMA-CDGA/CDGP数据治理认证考试开放报名中&#xff01; 考试开放地区&#xff1a;北京、上海、广州、深圳、长沙、呼和浩特、杭州、南京、济南、成都、西安。其他地区凑人数中… DAMA-CDGA/CDGP数据治理认证班进行中&#xff0c;快来报名加入学习吧&#xff01; DAMA认…

谈谈接口 0.0

目录 接口的概念 接口语法 接口的成员变量与方法 接口的使用 实现多个接口 接口的概念 在现实生活中&#xff0c;接口的例子比比皆是&#xff0c;比如&#xff1a;笔记本上的USB口&#xff0c;电源插座等... 电脑的USB口上&#xff0c;可以插&#xff1a;U盘、鼠标、键盘…

three.js 基础入门

总体思路&#xff1a; 1. 创建场景 2. 创建物体&#xff08;指定几何体、材质&#xff09; 3. 把物体加入场景 4. 创建相机&#xff08;指定机位及拍摄对象&#xff09; 5. 创建渲染器&#xff08;指定画布大小&#xff0c;渲染场景和相机&#xff09; // 1. 创建场景const s…

【图像分割】【深度学习】Windows10下f-BRS官方代码Pytorch实现

【图像分割】【深度学习】Windows10下f-BRS官方代码Pytorch实现 提示:最近开始在【图像分割】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。 文章目录 【图像分割】【深度学习】Windows10下f-BRS官方代码Pytorch实现前言f-BRS模型运行环境安装1.下载源码并…

MySQL基础(十三)约束

1. 约束(constraint)概述 1.1 为什么需要约束 数据完整性&#xff08;Data Integrity&#xff09;是指数据的精确性&#xff08;Accuracy&#xff09;和可靠性&#xff08;Reliability&#xff09;。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成…

Ubuntu20.04 不能访问磁盘? 挂载/添加磁盘

Ubuntu20.04 不能访问磁盘&#xff1f; 挂载/添加磁盘 1. 判断是否挂载磁盘2. 格式化磁盘3. 挂载磁盘4. 设置磁盘权限5. 重启系统 一般设备刚拿回来的是不会全部挂载的&#xff0c;也就是说&#xff0c;一部分硬盘&#xff08;机械硬盘&#xff09;是需要我们自己挂载的&…

如何通过舆情监测系统加强数据分析和舆情管控?

舆情监测系统是一种可以帮助企业、政府等机构了解并掌握公众对其关注的程度&#xff0c;以及对其言论和行动的态度和反应的工具。随着社交媒体的兴起&#xff0c;舆情监测系统也越来越重要&#xff0c;越来越受到各个领域的关注和应用。本文将通过分析国内的具体案例&#xff0…

flex布局中理解flex-grow、flex-shrink、flex-basis属性

参考博客&#xff1a; 深入理解flex布局的flex-grow、flex-shrink、flex-basis flex-basis属性 flex-basis设置子项目占据的空间大小&#xff0c; 如果指定flex-basis的值&#xff0c;则子项目会占用所设置的值。如果没有指定或者设置为auto&#xff0c;子项目占据的大小为wi…

咪咕MGV2000_JL-S905L3-B-当贝纯净桌面线刷固件包

咪咕MGV2000_JL-S905L3-B-当贝纯净桌面线刷固件包-内有教程及短接点 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置的没用的软件&a…

中兴B860AV2.1-T(M)-非高安版-当贝纯净桌面线刷固件包

中兴B860AV2.1-T(M)-非高安版-当贝纯净桌面线刷固件包-内有教程及短接点 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置的没用的软…

【花雕学AI】32:WeTab——使用 ChatGPT 聊天的新标签页,免费又好用

引言&#xff1a; 你是否厌倦了每次打开浏览器都看到同样的新标签页&#xff1f;你是否想要让你的新标签页更有个性&#xff0c;更有趣&#xff0c;更有用&#xff1f;如果是的话&#xff0c;那么你一定要试试 WeTab&#xff01; WeTab 是一款免费的浏览器扩展&#xff0c;它…

DiscuzX3.5中,截屏图片的粘贴上传

目录 1 前言 2 网页端实现代码 3 服务器端php代码 4 测试一下 5 注意 1 前言 discuzX系列版本&#xff0c;无论是论坛还是门户&#xff0c;图片上传只能使用选择本地文件并上传的方式&#xff0c;与csdn直接用截屏后&#xff0c;ctrlv粘贴上传图片的方式相比&#xff0c;…