springcloud项目中学习&&各种报错
-
springcloud项目中maven依赖报错Non-resolvable import POM
直接删除pom依赖中的《type》import 即可——然后你会惊奇的发现springcloud alibaba的相关组件不添加版本会无法使用;
但,在这时候你重新把这个《type》加入之后,哎,一切都好了,不会报错也正常使用(滑稽) -
Nacos发行版本安装
下载地址:
https://nacos.io/zh-cn/index.html
官网图片:
修改Nacos的start.cmd——MODE="standalone"
application.properties——如果是单机模式就直接使用内存模式就行了,如果是集群模式,一般使用注释掉的MYSQL模式。
启动:Windows之间双击startup.cmd,然后cmd就会出现首页访问地址,粘贴访问即可,注意:是http,不是https
- 模块没有小蓝框--没编译
如果你是复制粘贴的微服务模块,导致微服务上面没有小篮框,说明没被编译。
复制粘贴的微服模块,
首先,要修改他的pom.xml--name;
其次,添加到父工程的modules:
最后,从settring-搜索ignored files(意思是被忽略的文件),取消勾选的pom.xml,然后就有小蓝框了
- RestTemplate使用java.net.UnknownHostException 解决
首先,以下代码是必须有的:
点击查看代码
//@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderServiceApplication {
public static void main(String[] args) {
SpringApplication.run(OrderServiceApplication.class, args);
}
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
将下面的代码添加到对应项目的pom中,加到父工程也是没用的!
点击查看代码
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
出现这个错误的原因是:Spring Cloud 2020版本以后,默认移除了对Netflix的依赖,其中就包括Ribbon,官方默认推荐使用Spring Cloud Loadbalancer正式替换Ribbon,并成为了Spring Cloud负载均衡器的唯一实现。
- nacos与服务异常
nacos也可以处理服务异常,但通常仅把nacos作为注册中心使用,如果服务出现异常,一般都是通过sentinel或其他组件进行处理
【BUG】Nacos2.0报错 “Error creating bean with name ‘grpcSdkServer‘: Invocation of init method failed;”
下面的链接讲解的不错,但一般重启电脑即可。
https://blog.csdn.net/weixin_43715214/article/details/127524741
- gateway学习及相关报错
首先,不要在模块中用到‘gateway’这个名称,因为——这个名称似乎是禁忌,只有‘lifestyle’二没有‘plugins’和‘dependencies’,而且为了修复这个问题,搞了2天都没搞定,最后只能重新建一个模块,且换名,不然,太无语了!
gateway 集合 nacos 报错,集中体见在 gateway 集合 nacos 时,利用服务注册中心进行访问其他的服务,但是结果却报404或503错误
但网络上却很少有关这方面的错误,或者即便有,但也是没法解决的,各种各样的奇奇葩葩的解决方法
首见,你需要在你 gateway 的配置文件中添加上日志 info 级别
可能相关信息如下
Mapping [Exchange: GET http://localhost:8082/ooo/order/add] to Route{id='nacos-gateway', uri=lb://order-service, order=0, predicate=Paths: [/ooo/**], match trailing slash: true, gatewayFilters=[[[StripPrefix parts = 1], order = 1]], metadata={}}
AbstractErrorWebExceptionHandler : [5eed8a1a-11] Resolved [NotFoundException: 503 SERVICE_UNAVAILABLE "Unable to find instance for order-service"] for HTTP GET /ooo/order/add
这里要说明的是,如果你使用的是 spring cloud alibaba2020之前的版本一般是不会有这个问题的。但是你如果使用的是
2020版之后的,那么大概率第一次学习的时会出现这个问题
这个问题困扰了我几天,因为网上一直找不到相关信息,但是最终在日志打印之后,在网上搜索就发见了解决方法如下:
解决方法其实非常简单,
只需要加一个 loadbalance 注解就行了,为什么呢?因为 spring boot 官方在2.x版或者什么版本之后,就不再支持 Netflix 而选择择自带的load balance,所以阿里巴巴也要相应的改变
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了