SpringCould+naocs2版本以上+nginx,错误:http error, code=403,msg=user not found!,和nginx负载均衡nacos2失败原因

                        

黑马的springcloud项目用的是旧的nacos,如果使用的是nacos2版本及以上的,需要自己修改,且nacos2新增了两个需要偏移的端口,我们弄端口的时候需要注意一下

首先我们要是自己下载的nacos2版本以上,我们里面的配置需要自己来配置

要是报错这个

EROR Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name  basicAuthenticationFilter  defined in class path

Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat

最新2.2.1版本Nacos单机启动失败-CSDN博客

可以看我的这个内容        

第一个常见错误

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memoryMonitor' defined in URL [jar:file:/D:/Nacos-2.2.1/nacos-server-2.2.11/nacos8845/target/nacos-server.jar!/BOOT-INF/lib/nacos-config-2.2.

 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'asyncNotifyService': Unsatisfied dependency expressed through field 'dumpService'; nested exception is org.springframework.beans.fa

com.alibaba.nacos.api.exception.NacosException: Nacos Server did not start because dumpservice bean construction failure :

 by: java.lang.IllegalStateException: No DataSource set

WARN [ThreadPoolManager] Start destroying ThreadPool

WARN [ThreadPoolManager] Destruction of the end

这个可能可能是我们重启的时候,忘记打开数据库了

反正我打开navicat连接一下数据库就能启动了

然后我补充一下

不仅仅我们要在这个application.properties文件里面配置我们的秘钥token,其他没填的内容我们也要自己填上去

发布历史 | Nacos

我们看看我们的nacos的application配置文件

我们会有一些空的东西,这种东西是必须要填的,我们按照官方文档来填写补齐,不然就会报错

Nacos支持三种部署模式

如果我们做的是黑马的项目,那么导入的它的那个sql是旧版本的nacos使用的,新版本的nacos对应的数据库和sql源文件在官方文档里面有,我们要跟着来配置

其实它的那个sql源文件就在nacos的conf文件夹里面

这些也一样

我们的application配置都在我们的权限认证里面,

我们要跟着来配置         Authorization (nacos.io)​​​​​

这些东西一个一个对着配置到我们的application文件种,然后我们的执行就不会报错了

java程序报错

nacos2和nginx负载均衡报错

 【BUG】Nacos2.0报错 “Error creating bean with name ‘grpcSdkServer‘: Invocation of init method failed;”

grpcSdkServer,grpc通信,在nacos2版本以上如果需要做负载均衡,我们就要弄grpc通信,和http通信

下面是我参考的博客

【BUG】Nacos2.0报错 “Error creating bean with name ‘grpcSdkServer‘: Invocation of init method failed;”_error creating bean with name 'grpcsdkserver': inv-CSDN博客

看看文档

这样子可能会看不懂,其实这个的意思是,如果我们配置的是8848端口,那么我们就要为我么的呢grpc通信配置我们的8848+1000端口,不然nacos2就会连接失败

  • 这个是我们的nacos2版本以上才有的错误

  • 此时我们无法监听到9846这个端口,因为被占用了

  • 因为我们要是集群配置的端口是8845 8846 8847 那么我们按照规则端口偏移1000和1001,那么我们相邻的端口就会冲突,我们记住,nacos2版本以上,集群不能配置相邻的端口

而且我们不仅要在nginx配置一个http模块的转发,还要配置一个grpc通信模块的转发

具体可以看这个Nginx + Nacos2.x(集群)部署防踩坑指南_nginx nacos-CSDN博客

你看,一个是http模块配置的端口,一个是grpc通信模块按照规则,偏移1000配置的端口

我们的官方文档也提到过端口偏移

Nacos 2.0.0 兼容性文档

说明了我们需要新增两个端口,而且往下拉也提了一嘴nginx,在这里吐槽一下,nacos2这个东西是真的麻烦,添加了那么多新东西

我们的集群端口不相邻,我们的nginx配置好了http负载均衡,和grpc通信弄的端口偏移的负载均衡,那我们nacos就可以成功启动了

下面博客是我的参考

Nacos2.3.0集群搭建_nacos 2.3.0-CSDN博客

  • 我先把监听端口改成8000
  • 然后发现我们的http的负载均衡没问题

如果都配置完成后报错

failed to req API:/nacos/v1/ns/instance after all servers([localhost:80/nacos]) tried: <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p ><div id='created'>Sun Mar 17 21:02:43 CST 2024</div><div>There was an unexpected error (type=Not Found, status=404).</div><div>No message available</div></body></html>

http error, code=403,msg=user not found!,dataId=userservice,group=DEFAULT_GROUP,tenant=

这其实是因为我们没有public的访问权限,导致我们一直连接不上我们的nacos,所以我们的日志就一直报错

其实这是因为我们配置的一个地方错误了,那个鉴权的地方错了

  • 没有public的访问权限

看看我们的application文件

这个鉴定权限,我们应该要为false

不然我们负载均衡转发的时候,和直接点开这个网址,我们拿到的权限是不同的,所以我们弄成false就行了,不然我们会连接不到我们的nacos,连接到了我们的public也没有权限

  • 是我们开启了权限认证的原因

  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值