Spring Cloud实战 | 第三篇:Spring Cloud整合Nacos实现配置中心

摘要:
前言随着eureka的停止更新,如果同时实现注册中心和配置中心需要SpringCloudEureka和SpringCloudConfig两个组件;配置修改刷新时需要SpringCloudBus消息总线发出消息通知到各个服务完成配置动态更新,否者只有重启各个微服务实例,但是nacos可以同时实现注册和配置中心,以及配置的动态更新。

前言

随着eureka的停止更新,如果同时实现注册中心和配置中心需要SpringCloud Eureka和SpringCloud Config两个组件;配置修改刷新时需要SpringCloud Bus消息总线发出消息通知(Kafka、RabbitMQ等)到各个服务完成配置动态更新,否者只有重启各个微服务实例,但是nacos可以同时实现注册和配置中心,以及配置的动态更新。

版本声明

Nacos Server: 1.3.2

SpringBoot: 2.3.0.RELEASE

SpringCloud: Hoxton.SR5

SpringCloud Alibaba: 2.2.1.RELEASE

项目实战

1.youlai-auth添加nacos-config依赖

<!-- nacos-config 依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2.项目配置文件bootstrap.yml指定nacos配置文件名

Spring Cloud实战 | 第三篇:Spring Cloud整合Nacos实现配置中心第1张

spring:
  application:
    name: youlai-auth
  cloud:
    nacos:
      discovery:
        server-addr: http://localhost:8848
      config:
        file-extension: yaml  # 必须修改成yaml
        group: DEFAULT_GROUP  # 缺省即可
        prefix: ${spring.application.name} # 缺省即可
rsa:
  publicKey: 123456

注意这里使用bootstrap.yml而非application.yml,避免applicaton.yml后加载于nacos配置并覆盖

SpringBoot读取配置文件顺序:bootstrap.yml>bootstrap.yaml>bootstrap.properties>nacos的配置>application.yml>application.yaml>application.properties

3.添加接口读取配置信息并添加动态刷新配置的注解@RefreshScope

@RefreshScope
@RestController
@RequestMapping("/oauth")
public class AuthController {

    @Value("${rsa.publicKey}")
    public String publicKey;

    @GetMapping("/publicKey")
    public Result getPublicKey(){
        return Result.success(this.publicKey);
    }
}

4.打开nacos管理控制台添加配置

DATA-ID :  ${prefix}-${spring.profiles.active}.${file-extension} 

Spring Cloud实战 | 第三篇:Spring Cloud整合Nacos实现配置中心第2张

a). prefix 默认spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置

b). file-extension默认properties,比如我这里使用的是yaml,那么更改spring.cloud.nacos.config.file-extension= yaml

c). Group默认DEFAULT_GROUP,也可以通过配置项 spring.cloud.nacos.config.group来配置

5.启动服务后第一次读取配置信息

Spring Cloud实战 | 第三篇:Spring Cloud整合Nacos实现配置中心第3张

6.再次请求接口获取配置信息

Spring Cloud实战 | 第三篇:Spring Cloud整合Nacos实现配置中心第4张

可以看到通过接口第二次获取配置信息已变更,完成配置信息的动态刷新

结语

至此youlai-auth模块整合nacos配置中心完成了,是不是相较于eureka整合SpringCloud Config方便了很多,完整代码地址在https://github.com/hxrui/youlai/tree/nacos。未完待续...

免责声明:文章转载自《Spring Cloud实战 | 第三篇:Spring Cloud整合Nacos实现配置中心》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇03.pandas数据DataFrameputty —— 最近一段时间ssh登陆间歇性掉线下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux shell脚本编程笔记(五): 重定向

I/O重定向 简述: 默认情况下始终有3个"文件"处于打开状态, stdin (键盘), stdout (屏幕), and stderr (错误消息输出到屏幕上). 这3个文件和其他打开的文件都可以被重定向. 对于重定向简单的解释就是捕捉一个文件, 命令, 程序, 脚本, 或者甚至是脚本中的代码块的输出, 然后将这些输出作为输入发送到另一个文件, 命令,...

mqtt(MQTT)

一、简述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低...

cheap-source-map--不显示源码 、source-map--显示源码 、 eval--最快的编译办法

config// https://webpack.js.org/configuration/devtool/#development.when(process.env.NODE_ENV === 'development',config => config.devtool('source-map')//cheap-source-map--不显示源码 、...

SpringBoot 整合EasyExcel 获取动态Excel列名

导读 最近负责消息网关,里面有个短信模板导入功能,因为不同模板编号对应不同参数,导入后的数据定时发送,涉及到Excel中列名不固定问题,于是想根据列名+值,组合成一个大JSON,具体代码如下。 引入依赖 <dependency> <groupId>com.alibaba</groupId...

【美国大学生数学建模比赛】2020C题(总结和参赛论文)百度云请自取

好消息:相关论文word版本已经上传至百度云,请三连后自取哈! 链接: https://pan.baidu.com/s/1k5V7D_PQ_tmb6kAmg-NhVg 密码: kj6u 【MCM】2020C题(总结和论文分享) 前言:QAQ ,数学建模美赛竟然在两个多月的疫情中结束了,美赛的这段时间效率属实高,仿佛是这两个月没有学习一下子迸发出的潜力一...

MongoDB sharding分片

MongoDB sharding分片 有了副本集为什么要用分片?分片(一个数据 存放在三个地方 共同存储为一个整体 类似于raid0的存储方式)1、副本集利用率不高2、主库的读写压力大优点:资源利用率高了读写压力负载均衡横向水平扩展缺点:理想状态下需要的机器比较多配置和运维都变的及其复杂一定要提前规划好,一旦建立后再想改变架构就变得困难了 分片的原理1、...