nacos在spring cloud环境中的使用

本文介绍了如何在Spring Cloud环境中使用Nacos作为注册中心和配置中心。详细讲解了Nacos的对接步骤,包括添加依赖、配置启动参数,并探讨了因版本不对应可能出现的问题及解决方案。实验结果显示,Nacos配置加载遵循特定的优先级规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、nacos的安装与配置

二、nacos注册中心

2.1 对接步骤

三、nacos配置中心

3.1 实验结果

3.2 对接步骤

四、遇到的问题

4.1 版本不对应导致的问题

4.1.1 常见问题表现


一、nacos的安装与配置

--- 有空再补充

二、nacos注册中心

2.1 对接步骤

pom文件引入nacos依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.0.4.RELEASE</version>
        </dependency>

添加启动配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        namespace: ee601b91-4269-4452-bd5f-5010e78b69d8
        service: nacos_service
        group: dev_nacos
        register-enabled: true

启动工程,在nacos界面看到启动的服务

 

三、nacos配置中心

3.1 实验结果

先说结果,需要验证过程的可参看后面的代码和配置再次验证

  • 1、nacos可同时加载多个配置,共享配置 spring.cloud.nacos.config.shared-configs 以数组的形式添加配置
  • 2、nacos配置生效的优先级。nacos加载的配置当中,由配置 spring.cloud.nacos.config.name 指定的配置为最高优先级,共享配置 spring.cloud.nacos.config.shared-configs 当中配置的的加载按照添加的顺序加载,即相同的配置项,顺序靠后的覆盖顺序靠前的。
  • 3、nacos配置中心当中添加配置时的data id命名需与配置格式相对应。例如:配置格式选择yaml,那data id的命名结尾需要以 .yaml 结尾,否则将获取不到对应的配置。

3.2 对接步骤

引入nacos依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.0.4.RELEASE</version>
        </dependency>

添加启动配置

spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        namespace: ee601b91-4269-4452-bd5f-5010e78b69d8
        name: nacos_service
        group: dev_nacos
        file-extension: yaml
        shared-configs:
          - data-id: mysql.yaml
            group: dev_nacos
            refresh: true
          - data-id: priority.yaml
            group: dev_nacos
            refresh: true

nacos配置内容

nacos_service.yaml:

service:
  name: nacos_service_test
config:
  priority: 1

mysql.yaml

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:336/nacos?characterEncoding=utf8
    username: root
    password: 123456

config:
  priority: 2
  priority2: 2

priority.yaml

config:
  priority: 3
  priority2: 3

接口代码

ConfigController.java

@RestController
@RequestMapping("config")
@RefreshScope
public class ConfigController {

    @Value(value = "${service.name}")
    private String serviceName;
    @Value(value = "${spring.datasource.url}")
    private String dataSourceUrl;
    @Value(value = "${spring.datasource.username}")
    private String dataSourceUsername;
    @Value(value = "${spring.datasource.password}")
    private String dataSourcePassword;
    @Value(value = "${config.priority}")
    private Integer configPriority;
    @Value(value = "${config.priority2}")
    private Integer configPriority2;

    @GetMapping(value = "/get",produces = "application/json")
    public String get() {
        return toString();
    }

    @Override
    public String toString() {
        return "{" +
                "\"serviceName\": \"" + serviceName + '\"' +
                ", \"dataSourceUrl\": \"" + dataSourceUrl + '\"' +
                ", \"dataSourceUsername\": \"" + dataSourceUsername + '\"' +
                ", \"dataSourcePassword\": \"" + dataSourcePassword + '\"' +
                ", \"configPriority\": " + configPriority +
                ", \"configPriority2\": " + configPriority2 +
                "}";
    }
}

工程启动后,接口返回的结果

四、遇到的问题

4.1 版本不对应导致的问题

在添加了nacos的pom文件依赖后,工程启动如出现以下几种异常,通常是alibaba与spring cloud、springboot版本不对应导致的

版本对应关系可到官方git

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值