框架篇--springboot 客户端 整合& Nacos 版本问题



前言

本文对 pringboot 客户端 整合Nacos 过程中出现的版本问题 进行记录;


一、Spring-boot 集成Nacos:

springboot 项目整合nacos 只需要引入两个jar ,config 和 discovery ,本文整合nacos 的jar 包是spring-cloud-starter 下的,所以需要注意下版本的兼容性:

1.1 版本匹配:

方式1:根据官网进行版本选择:

官网地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

如本文使用 2022.0.x 的版本:
在这里插入图片描述

方式2:从当前的springboot 版本推导 springcloud 版本,在推导出 cloud nacos 版本:

1) jar 版本判断:
nacos 的jar 包版本 最好和你springboot 的版本进行对应,以减少版本冲突 ,下面为 springboot 版本和 springcloud 的版本对应关系:
官网地址 :https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases

在这里插入图片描述
2) 然后找对饮cloud 的nacos config 和discovery版本:找到与 springcloud 的版本相对应的版本:

地址 :https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-config
在这里插入图片描述
3) 例子:
我的 springboot的依赖 3.0.13:

<parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>3.0.13</version>
     <relativePath/> <!-- lookup parent from repository -->
 </parent>

对应的 spring cloud 的版本:2022.0.x
在这里插入图片描述
则 在匹配 nacos 版本时,就可以使用 2022.0.x
在这里插入图片描述

1.2 对应版本jar 引入:

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

二、项目启动:

如果一切顺利则启动时就可以看到 默认连接到 127.0.0.1:8848 进行注册:
在这里插入图片描述

启动如果报错可以可以提示进boot 版本的修改;

在这里插入图片描述

三、bootstrap.yml 配置文件问题:

3.1 无法解析bootstrap.yml 问题:

当我们修改 配置中心(cofig) 和服务注册与发现中心(discovery)的 属性:新建bootstrap.yml 增加nacos 参数配置:

spring:
  application:
    # 应用名称
    name: bluegrass-gateway
  profiles:
    # 生效环境
    active: dev
  # Nacos 参数配置
  cloud:
    nacos:
      config:
        # 配置中心地址
        server-addr: nacos 服务的地址:端口
        # 配置中心文件后缀
        file-extension: yaml
        # 配置中心的命名空间id
        namespace: 03e54842-c34e-4a6c-a28c-0a55a2e0fb6c
        # 配置中心的配置文件分组
        group: DEFAULT_GROUP
      discovery:
        # 服务发现地址
        server-addr: nacos 服务的地址:端口
        # 注册的地址
        ip: 172.28.20.154
        # 需要注册到的命名空间
        namespace: 81321cc2-df37-4e6a-b4d8-7e7160248f9e
        # 注册服务的默认分组
        group: DEFAULT_GROUP

启动时 可能会提示:

Description:

No spring.config.import property has been defined

Action:

Add a spring.config.import=nacos: property to your configuration.
	If configuration is not required add spring.config.import=optional:nacos: instead.
	To disable this check, set spring.cloud.nacos.config.import-check.enabled=false.

Disconnected from the target VM, address: '127.0.0.1:55223', transport: 'socket'

这个是因为从SpringCloud 2020.* 版本把bootstrap禁用了,导致在读取文件的时候读取不到而报错,所以我们只要把bootstrap重新导入进来就会生效了,获取我们直接不使用 bootstrap.yml 进行配置。

3.2 不解析bootstrap.yml 配置:

在application.properties 中增加下面属性后,启动不会去加载 bootstrap.yml 配置文件,从而避免错误

 spring.cloud.nacos.config.import-check.enabled=false

3.3 重新导入 bootstrap start:

引入与springboot版本相对应的 spring-cloud-starter-bootstrap

<!--开启Spring Cloud 应用程序启动时加载bootstrap配置文件-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
    <version>3.1.8</version>
</dependency>


总结

本文对 pringboot 客户端 整合Nacos 过程中出现的版本问题 进行记录;

参考:

spring-cloud,springboot,nacos 版本依赖说明;

  • 22
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值