一、Nacos
1.1、官网
https://nacos.io/zh-cn/docs/what-is-nacos.html
二、Nacos作为注册中心
2.1、官网
https://github.com/alibaba/spring-cloud-alibaba/blob/2.2.6.RELEASE/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md
三、 Nacos作为配置中心
3.1、官网
https://github.com/alibaba/spring-cloud-alibaba/blob/2.2.6.RELEASE/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/readme-zh.md
3.2、简单配置
3.2.1、引入配置
<!-- nacos 配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
3.2.2、创建一个bootstrap.properties
spring.application.name=config-service
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
3.2.3、配置中心添加Data Id
配置管理===>配置列表===>新建===>Data Id(名为 ${spring.application.name}.properties),如:config-service.properties。配置内容自定义...
3.2.4、动态获取配置
所谓动态获取配置是指,当配置中心的 ${spring.application.name}.properties文件中配置的信息发生变化时,无需重启服务即可获取最新的值。两个注解:@RefreshScope、@Value。
/**
* @Author : 一叶浮萍归大海
* @Date: 2024/1/2 13:11
* @Description:
*/
@RefreshScope
@RestController
public class ConfigController {
@Value("${nacos.config.user.name}")
private String username;
@Value("${nacos.config.user.age}")
private Integer age;
@GetMapping("/getNacosConfig")
public Map<String,Object> getNacosConfig() {
Map<String,Object> resultMap = new HashMap<>(2);
resultMap.put("username",username);
resultMap.put("age",age);
return resultMap;
}
}
3.3、命名空间 & 配置分组
3.3.1、命名空间
(1)作用:配置环境隔离;
(2)默认:public(保留空间),默认新增的所有配置都在public空间;
(3)案例1:开发环境、测试环境、生产环境有各自的配置文件,可以新建3个命名空间用于隔离这几个环境
注意事项:需要在bootstrap.properties配置文件中指明使用具体的哪个命名空间下的配置,例如:
spring.cloud.nacos.config.namespace=aa614e32-ccd8-47af-99c8-92c634b1dbd3
案例2:每一个微服务之间互相隔离,每一个微服务都创建自己的命名空间,然后在bootstrap.properties中加载自己命名空间下的所有配置
3.3.2、配置分组
概述:
默认所有的配置集都属于DEFAULT_GROUP,是一个更细粒度的配置,例如针对618、双十一、双十二建立不同的分组。
boostrap.properties配置
# 配置命名空间
spring.cloud.nacos.config.namespace=df0a2502-7ea0-4143-b952-cd1f7064b8f8
# 配置分组
spring.cloud.nacos.config.group=618
3.3.3、配置集Id
概述:类似文件名
Data ID:文件名
3.3.4、配置集
概述:
一个完整的Spring Cloud微服务应用避不可少的常见组件有:数据源、MyBatis-Plus、服务注册与发现、服务端口、RocketMQ、Redis、Nginx...等,如果把这些配置都写在一个文件中虽然也可以满足需求,但是大量的配置写在一个文件中,会显得配置异常的臃肿,基于此Spring Cloud Alibaba提供了配置集的功能,所谓配置集,其实相当于把多个不同的配置,通过在bootstrap.properties文件中统一管理,来将各个配置信息组合在一起,形成一个完整的配置。例如:nacos配置中心有如下配置:
bootstrap.properties中可以通过如下方式将这几个配置统一管理起来对外提供服务: