系列四、Spring Cloud Alibaba - Nacos

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

### Spring Cloud Alibaba Nacos Discovery 版本列表 为了获取 `spring-cloud-starter-alibaba-nacos-discovery` 的具体版本信息,通常可以通过Maven中央仓库或其他官方资源查询。以下是几个常用的方法来找到这些版本: #### 方法一:访问 Maven 中央仓库网站 可以直接前往[Maven Central Repository](https://search.maven.org/)并搜索 `spring-cloud-starter-alibaba-nacos-discovery` 来查看可用的版本。 #### 方法二:通过命令行工具 mvnrepository 查询 如果本地安装了 Maven 或者其他构建工具,也可以利用它们自带的功能来进行查询。例如,在终端输入如下命令: ```bash mvn dependency:get -Dartifact=com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery::pom ``` 这将会显示最新的发布版以及一些历史版本的信息。 #### 方法三:查阅官方文档或 GitHub 发布页面 Spring Cloud Alibaba 官方会定期更新其组件的支持情况和兼容性说明,因此建议关注项目的GitHub主页上的 Releases 页面或者对应的 Wiki 文档部分[^1]。 对于特定项目中的依赖管理,可以在 `pom.xml` 文件内定义所需的版本号,如下面的例子所示: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${specific.version}</version><!-- 替换成实际需要使用的版本 --> </dependency> ``` 需要注意的是,不同版本之间可能存在API变更或者其他不向后兼容的情况,所以在选择版本时应当考虑当前应用所基于的技术栈及其稳定性需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值