SpringCloud整合Nacos实现配置中心 |
您所在的位置:网站首页 › nacos数据源配置 › SpringCloud整合Nacos实现配置中心 |
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: 193.3、配置生效 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |