SpringCloud实践系列(四):Nacos配置中心
Nacos: 注册中心,解决服务注册与发现
Ribbon: 客户端的负载均衡器,解决服务集群的负载均衡
SpringCloud实践系列(三):OpenFeign服务调用
OpenFeign:声明式的HTTP客户端,服务远程调用
Nacos:配置中心,中心化管理配置文件
SpringCloud实践系列(五):Sentinel流控(待更新)
Sentinel:微服务流量卫兵,以流量为入口,保护微服务,防止出现服务雪崩
SpringCloud实践系列(六):Gateway网关(待更新)
Gateway: 微服务网关,服务集群的入口,路由转发以及负载均衡(结合Sentinel)
SpringCloud实践系列(七):Sleuth链路追踪(待更新)
Sleuth: 链路追踪,链路快速梳理、故障定位等
SpringCloud实践系列(八):Seata分布式事务(待更新)
Seata: 分布式事务解决方案
一、概述
传统配置文件的弊端
1、配置分散,不便于管理
2、通用配置冗余
3、不能不停机修改配置文件
常见配置中心的对比

二、快速使用
在nacos中编写配置文件
# 在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}
项目中配置文件调用nacos中的文件
-
导入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
-
编写配置文件(bootstrap.yml)
# 从配置中心加载配置文件(文件名:${prefix}-${spring.profiles.active}.${file-extension}) spring: cloud: nacos: config: server-addr: localhost:8848 namespace: dev group: DEFAULT_GROUP prefix: cloud-order file-extension: yml username: nacos password: nacos profiles: active: dev
三、其他技巧
3.1、不停机动态刷新
像druid连接池的配置,不需任何操作,会自动刷新
常规的加上@RefreshScope即可
@RestController
// 该注解加上后,在nacos里修改配置,会自动刷新
@RefreshScope
@RequestMapping("/order")
public class OrderController {
@Value("${url}")
private String url;
@GetMapping("/test")
public void test() {
return url;
}
}
3.2、共享配置
新建通用信息的配置
加载共享配置:在bootstrap.yml文件中添加shared-configs参数即可
spring:
cloud:
nacos:
config:
server-addr: localhost:8848
namespace: dev
group: DEFAULT_GROUP
prefix: cloud-order
file-extension: yml
username: nacos
password: nacos
shared-configs: # 加载共享配置文件(数组形式,可加载多个文件)
- common.yml
refreshable-dataids: common.yml # 通用文件中的属性不支持动态刷新,可以指定该属性
profiles:
active: dev
3.3、多环境切换
在nacos中分别编写dev和prod环境的配置文件
建如下多个文件
-
bootstrap.yml
# 指定使用哪个环境 spring: profiles: active: prod
-
bootstrap-dev.yml
# 开发环境,指定namespace:dev spring: cloud: nacos: config: server-addr: localhost:8848 namespace: dev group: DEFAULT_GROUP prefix: cloud-order file-extension: yml username: nacos password: nacos
-
bootstrap-prod.yml
# 生产环境,指定namespace:test spring: cloud: nacos: config: server-addr: localhost:8848 namespace: prod group: DEFAULT_GROUP prefix: cloud-order file-extension: yml username: nacos password: nacos
3.4、版本回退
在nacos中可以查看历史版本及回滚
转载自:https://juejin.cn/post/7243680457816195109