项目经验-报错信息
Ngnix 报 504
location / {
proxy_pass http://xxxx/;
proxy_set_header Host $host:$server_port;
}
如上所示:项目配置使用 proxy_pass 进行转发。因此在 ngnix.conf 配置文件内修改对应的参数:
# 后端服务器连接超时时间(代理连接超时)默认 60s。
proxy_connect_timeout 1800s;
# 后端服务器数据回传时间(代理发送超时)默认值 60s。
proxy_send_timeout 1800s;
# 连接成功后,后端服务器响应时间(代理接收超时)默认值 60s。
proxy_read_timeout 1800s;
如果使用的 fastcgi_pass 进行的转发,修改如下对应参数:
# 后端服务器连接超时时间(代理连接超时)默认 60s。
fastcgi_connect_timeout 1800s;
# 后端服务器数据回传时间(代理发送超时)默认值 60s。
fastcgi_send_timeout 1800s;
# 连接成功后,后端服务器响应时间(代理接收超时)默认值 60s。
fastcgi_read_timeout 1800s;
启动 Redis 报:WARNING overcommit_memory is set to 0 Background save may fail under low memory condition
# 第一步:编辑配置文件
vim /etc/sysctl.conf
# 第二步:新增配置(最后一行)
vm.overcommit_memory=1
# 第三步:配置生效
sysctl -p
启动 Redis 报:WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will
# 第一步:先关闭 Redis
# 第二步:编辑配置文件
sudo vim /etc/rc.local
# 第三步:新增配置(最后一行)
echo never > /sys/kernel/mm/transparent_hugepage/enabled
# 第四步:保存,退出,重启 Redis 即可
启动 Redis 报:WARNING The TCP backlog setting of 511 cannot be enforced
# 第一步:编辑配置文件
vim /etc/sysctl.conf
# 第二步:新增配置(最后一行)
net.core.somaxconn=1024
# 第三步:配置生效
sysctl -p
Nacos 使用报:ConnectException: no available server, currentServerAddr
- 加入依赖
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.0.2</version>
</dependency>
微服务远程接口调用报:java.lang.IllegalArgumentException: method GET must not have a request body
- 原因
微服务使用 FeignClient 做接口调用的时候,GET 请求无法解析对象参数。
- 解决方法
- POST + @RequestBody。
- GET + @SpringQueryMap(注意 Spring Cloud 的版本,2.1.x 以下的不支持)。
- GET + @RequestParam(“xxx”)。
微服务项目启动报:The bean ‘xxx.FeignClientSpecification‘ could not be registered
- 原因
多个 Feign 接口使用 @FeignClient 注解,调用同一名称的微服务时,发生异常。
- 解决方法
- 将 Feign 接口合并。
- 配置文件中增加配置:spring.main.allow-bean-definition-overriding = true。
- 在 @FeignClient 注解上增加 contextId 属性,确保每个 Feign Client 的 contextId 唯一。
@FeignClient(name = "${file.url}",path = "/api/file",contextId = "fileCilent")
@FeignClient(name = "${client.url}", path = "/api/client", contextId = "userClient")
微服务项目启动报:Failed to load property source from location ‘classpath:/application.yml’
- 加入配置
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
微服务项目启动报: Invalid bound statement (not found)
- 原因
Mapper.java 和 Mapper.xml 文件都在 java 目录下,缺少对应的配置信息。
- 解决办法
pom.xml 文件添加配置:
<build>
<!-- 配置加载配置项信息-->
<resources>
<resource>
<directory>src/main/java</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>**/*.json</include>
<include>**/*.ftl</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
application.yml 文件添加配置
mybatis-plus.mapper-locations: classpath*:com/rhx/notice/mapper/xml/*Mapper.xml