第一个就是环境问题
尤其是springcloud和springboot之间的环境关系(看官方文档或者直接都用最新的)但直接用最新的可能会需要导入其他依赖
原来spring-cloud-dependencies 2020.0.0 版本以上不在默认加载bootstrap 文件,如果需要加载bootstrap 文件需要手动添加依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
服务注册,如果没有使用ribbion一定要指明,否则会报错
<!--服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<!--不使用Ribbon 进行客户端负载均衡-->
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>
后面就会报错没有负载均衡
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
在想研究git代码时,需要想方设法先让代码运行起来再去研究
若报错信息如下
HikariPool-1 - Connection is not available, request timed out after
就需要手动配置yml文件,添加红色圈起来的部分代码
如果更改@Requestmaping注解中的url,而输入网址依旧是原来的,可以试试将maven先clean后在install下就可以得到想要的效果了
端口占用的情况,输入两个指令即可
netstat -ano|findstr “10000”(10000是被占用的端口号)
taskkill -PID 4492 -F
需要使用Validation是后需要导入依赖(springboot高版本没有包含这个依赖) spring-boot-starter-validation
第85集会出现循环依赖的问题(这是因为springcloud最新版本问题)
解决方法,在yml文件下添加以下内容
spring:
main:
allow-circular-references: true
调用StringTemplate时,要用@Autowired注解,而不是@Resource注解
feign远程调用丢失请求头
解决方案就是加上feign远程调用的请求拦截器
Feign远程调用丢失请求头问题 P268
Feign异步调用丢失请求头问题 P269
如何发现问题的?
我们再进行断点测试的时候,发现数据并没有传进来,因为这个问题是在加上了异步后出现的问题,所以初步定为是异步的问题,然后我再各个线程都打印了线程号,发现主线程,其余线程号都不相同,就猜是不是因为线程不同而导致数据没有同步了?然后查阅相关资料,发现确实有这个问题
简单来说原因是异步后不再同一线程,数据也就不在同一线程上,不同线程不共享数据。我们可以在主线程里获取之前的请求,然后再每个线程里都共享之前的请求
分布式session不共享不同步的问题 P225 P256
RabbitMQ在P293使用
注意ttl时long类型数字,需要在数字后添加L
我遇到了循环依赖的问题,暂时没解决,只能通过yml配置允许了循环依赖
P330有类似循环依赖解决思想
使用时候需要开启注解@EnableRabbit
消息丢失、积压、重复等解决方案 P300
循环依赖问题是面试重点,最好要理解透