SpringCloud整合Nacos实现配置中心

您所在的位置:网站首页 nacos数据源配置 SpringCloud整合Nacos实现配置中心

SpringCloud整合Nacos实现配置中心

2024-07-14 17:39| 来源: 网络整理| 查看: 265

1、前言

在系统开发过程中,开发者通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成。配置变更是调整系统运行时的行为的有效手段。

如果微服务架构中没有使用统一配置中心时,所存在的问题:

配置文件分散在各个项目里,不方便维护

配置内容安全与权限

更新配置后,项目需要重启

nacos配置中心:系统配置的集中管理(编辑、存储、分发)、动态更新不重启、回滚配置(变更管理、历史版本管理、变更审计)等所有与配置相关的活动。

本文章以前面讲的内容为基础。

微服务的搭建

https://blog.csdn.net/supersolon/article/details/117709129?spm=1001.2014.3001.5501

nacos的安装

https://blog.csdn.net/supersolon/article/details/117521085?spm=1001.2014.3001.5501

nacos实现注册中心

https://blog.csdn.net/supersolon/article/details/117824599?spm=1001.2014.3001.5501

今天继续讲SpringCloud整合Nacos实现配置中心

2、Nacos配置中心服务

 

通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。

还是以iot-usercenter服务为例进行讲解(iot-common步骤一样,不再赘述)。

2.1Nacos新建配置

点击Nacos-【配置管理】-【配置列表】-【+】按钮,弹出新建配置页面。

在页面中添加user信息,设置user的name、age信息。

 

Data ID:一般为服务名

Group:默认为DEFALT_GROUP

配置模式:YAML

配置内容:

name: wangshanshan-usercenter

age: 11

 

 

 

2.2配置pom.xml文件 2.2.1父工程pom文件

引入spring-cloud-alibaba的依赖

com.alibaba.cloud spring-cloud-alibaba-dependencies ${spring-cloud-alibaba.version} pom import

 

2.2.2子工程pom文件

iot-usercenter模块的pom.xml文件中,添加nacos配置中心依赖

 

代码如下:

    com.alibaba.cloud     spring-cloud-starter-alibaba-nacos-config

添加完依赖后,点击右上角的Load Maven Changers按钮,使新引入的依赖生效。

2.3配置application.yml文件

application.yml文件,添加nacos配置服务信息以及user信息。

 

代码如下:

server:   port: 9091 spring:   application:     name: iot-usercenter   cloud:     nacos:       discovery:         server-addr: 127.0.0.1:8848       config:         server-addr: 127.0.0.1:8848         file-extension: yaml  # 必须修改成yaml         group: DEFAULT_GROUP  # 缺省即可         prefix: ${spring.application.name} # 缺省即可 user:   name: lisi-application   age: 19

 

说明:之所以需要配置 spring.application.name ,是因为它是构成 Nacos 配置管理 dataId字段的一部分。

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

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

prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。 2.4Controller类添加@RefreshScope注解

添加 @RefreshScope 注解实现配置的动态刷新

代码如下:

package com.iot.usercenter.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/user") @RefreshScope public class UserController { //    private String name = "lisi"; //    private String age = "19";     //引入@RefreshScope注解,值从配置文件获取     @Value("${user.name}")     private String name;     @Value("${user.age}")     private String age;     //登录     @RequestMapping("/login")     public String login(){         String msg =" I am " + name + " , I am " + age + " years old!";         System.out.println(msg);         return msg;     } } 2.5重启并访问服务 2.5.1重启

 

2.5.2访问

访问服务,获取到nacos配置里的user信息,跟nacos配置的信息一致。

 

6.6更新配置查看效果

更新配置

刷新查看信息,信息根据配置进行更新。

 

3、Nacos多个服务共用一个配置

 

比如有一个产品环境,多个服务共用一套信息的情况下,可以创建一个iot-product的配置。

配置文件中nacos.config.prefix统一配置为iot-product。

 

​​​​​​​3.1添加公共配置

 

​​​​​​​3.2修改bootstrap.yml配置文件

 

bootstrap.yml配置文件内容如下:

server:   port: 9091 spring:   application:     name: iot-usercenter   cloud:     nacos:       discovery:         server-addr: 127.0.0.1:8848       config:         server-addr: 127.0.0.1:8848         file-extension: yaml  # 必须修改成yaml         group: DEFAULT_GROUP  # 缺省即可         prefix: iot-product # 缺省即可 user:   name: lisi-bootstrap   age: 19

 

​​​​​​​3.3、配置生效



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3