系列四、Spring Cloud Alibaba - Nacos

发布时间:2024年01月02日

一、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中可以通过如下方式将这几个配置统一管理起来对外提供服务:

文章来源:https://blog.csdn.net/HelloWorld20161112/article/details/135338107
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。