【Nacos】解决服务向nacos注册出现的403 user not found/UsernameNotFoundException的问题

问题场景

微服务项目,所有业务服务通过docker-compose编排顺序并启动,gateway服务监测到nacos服务启动后立即向nacos注册。现在的问题是每次服务器重启或者docker-compose集中up时gateway服务报错(见下图),提示找不到用户,注册失败。但是重启gateway服务后又正常。

本文的解决方案仅限于此场景:当nacos启动后,其他业务服务马上注册。

先上截图:

gateway服务异常日志:报错user not found

找不到用户

nacos异常日志:报错找不到登录的用户名
找不到此用户名称的数据

问题原因:

查看图二异常中提到的NacosUserDetailsServiceImpl.java的源码可知(图懒得贴了):nacos服务的用户数据不是即时向数据库获取的,而是通过定时查询数据库并保存在内存中。但是定时任务首次查询时会延迟5秒再去执行,这就导致nacos刚启动就向它注册的话就会找不到用户数据!

解决办法:

我这边的处理办法是修改了gateway服务的启动脚本,监测到nacos服务启动后再等待10秒后再运行。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nacos2 user not found 是指在使用nacos2时出现了用户未找到的问题nacos2是一个开源的服务发现和配置管理平台,用户可以通过nacos2来管理自己的服务和配置信息。 如果在使用nacos2时出现了"用户未找到"的消息,可能有以下几种原因: 1.用户名输入错误:请检查输入的用户名是否正确,确保大小写和拼写没有错误。 2.用户不存在:有可能在nacos2的数据库中没有找到与所输入的用户名相匹配的用户记录。请确保在nacos2中创建了该用户,并正确配置了用户名和密码。 3.数据库连接问题nacos2可能无法正常连接到数据库,导致无法查询用户信息。请确保数据库配置正确,并检查数据库的连接状态。 如果确认以上原因都没有问题,还是无法解决"nacos2 user not found"的问题,可以尝试以下步骤: 1.重新启动nacos2服务:有时候nacos2在运行过程中出现了异常,导致用户查询功能无法正常工作。重新启动nacos2服务可以尝试解决问题。 2.检查版本兼容性:nacos2的版本更新可能会导致部分功能的变化或者不兼容。请确保您使用的nacos2版本与用户查询功能兼容,并查看是否需要进行其他配置或更新。 4.查看日志文件:查看nacos2的日志文件,寻找可能的错误或异常信息,有助于进一步定位问题,并提供针对性解决方案。 总之,解决"nacos2 user not found"问题的方法多种多样,需要根据具体情况进行调试和排查。如果以上方法都无法解决问题,建议查阅nacos2的官方文档或寻求相关技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值