黑马的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:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sun Mar 17 21:02:43 CST 2024
There was an unexpected error (type=Not Found, status=404).
No message available

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

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

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

没有public的访问权限

看看我们的application文件

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

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

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

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: