当前位置: 首页 > article >正文

check-update] get changed dataId error, code: 403

前言

新部署的项目 启动后 控制台一直报错 简要内容 [check-update] get changed dataId error, code: 403 具体内容如下

2023-11-17 11:34:44.015 ERROR [com.alibaba.nacos.client.Worker.longPolling.fixed-10.226.4.98_8848-cfbc33a4-3911-4fab-9c5d-bfb11ef20654] [,,,] com.alibaba.nacos.client.config.impl.ClientWorker.checkUpdateConfigStr - [fixed-10.226.4.98_8848-cfbc33a4-3911-4fab-9c5d-bfb11ef20654] [check-update] get changed dataId error, code: 403

目前看来功能没受到影响

定位

由于使用的是nacos 2.2.2 版本 并且 开了鉴权 ,初步感觉问题原因,是在鉴权的时候出的问题

  1. 检查项目版本
    spring boot 2.3.12.RELEASE
    spring cloud Hoxton.SR8
    spring cloud alibaba 2.2.6.RELEASE
    发现 服务注册发现和配置文件中使用nacos-client的是 1.4.2版本
    和nacos-server 2.2.2. 版本相差过大

  2. 同时发现 鉴权开启后 应用的配置文件中需要添加配置 配置nacos的账号密码 方式选择其一 即可

#方式一 分别指定 discovery 和 config 账号密码
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=xxx
spring.cloud.nacos.config.username=nacos
spring.cloud.nacos.config.password=xxx
# 方式二 统一指定nacos的账号密码 
spring.cloud.nacos.username=nacos
spring.cloud.nacos.password=xxx

解决

pom文件中修改 nacos-client的版本 将nacos-discovery 和 nacos-config 依赖中的nacos-client排除 并引入新的版本

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
   <exclusions>
       <exclusion>
           <groupId>com.alibaba.nacos</groupId>
           <artifactId>nacos-client</artifactId>
       </exclusion>
   </exclusions>
</dependency>

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
   <exclusions>
       <exclusion>
           <groupId>com.alibaba.nacos</groupId>
           <artifactId>nacos-client</artifactId>
       </exclusion>
   </exclusions>
</dependency>

<dependency>
   <groupId>com.alibaba.nacos</groupId>
   <artifactId>nacos-client</artifactId>
   <version>2.2.2</version>
</dependency>

总结

nacos的鉴权失败有几个原因

  1. 使用了较新的nacos-server开启了鉴权 但是 应用本身自带的nacos-client版本 过低
    这个问题很重要 !!! (低版本的client 请求nacos-server时 可能不会携带 鉴权信息 导致鉴权失败)
  2. 鉴权开启后 应用的配置文件中未添加nacos 配置 选择如下方式的一种 添加即可
#方式一 分别指定 discovery 和 config 账号密码
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=xxx
spring.cloud.nacos.config.username=nacos
spring.cloud.nacos.config.password=xxx
# 方式二 统一指定nacos的账号密码 
spring.cloud.nacos.username=nacos
spring.cloud.nacos.password=xxx
  1. 鉴权配置没生效 (重要!!!)
    未放置在bootstrap配置文件中 (需要将该配置放入到bootstrap 应用配置中 优先加载)(平常的项目配置文件 一般是 application-环境.yaml)需要修改成 bootstrap-环境.yaml
  2. 配置被重写 这个属于细节性问题,记得多检查
    同一个配置文件配置了两遍 例如说在nacos的配置上或者 服务上对应的配置文件里 第一遍写了 账号密码 后面有配置了一遍 但是没有写上账号面 例如下面这样
# 统一指定nacos的账号密码 
spring.cloud.nacos.username=nacos
spring.cloud.nacos.password=xxx

//...... 省略其他的配置
spring.cloud.nacos.username=
spring.cloud.nacos.password=
  1. nacos 账号密码 不对 切结配置正确的账号密码

以上就是本文的全部内容了,希望可以帮助到大家,另外本文也很有可能没能帮助到各位,请各位见谅,目前只是列出了常见的错误,由于环境以及框架的不同,都会导致问题,希望多排查,如果解决了欢迎留言。

good day !!!


http://www.kler.cn/a/132275.html

相关文章:

  • 6.7二叉树的最小深度(LC111)
  • c# 字符串转换为byte
  • php正则表达式汇总
  • Java实现的插件化策略模式
  • ForkLift:macOS文件管理器/FTP客户端
  • 【全网首发】2023年NOIP真题
  • vue3 + ts项目(无vite)报错记录
  • react-router-dom 版本6.18.0中NavLink的api和属性介绍
  • Redis篇---第六篇
  • 【Linux】常用系统工作命令
  • 大数据架构Lambda-架构师(六十九)
  • [C/C++]数据结构 链表OJ题:随机链表的复制
  • ES6 导入导出
  • redis运维(九)字符串(二)字符串过期时间
  • 为什么C++标准库中atomic shared_ptr不是lockfree实现?
  • 填充每个节点的下一个右侧节点指针
  • wpf devexpress Property Grid创建属性定义
  • Oracle OCP / MySQL OCP认证容易通过吗
  • es 算法函数 有点不太懂了没有大神给指点一下
  • 【2】SM2验签工具和RSA验签工具