Files
SOP/doc/docs/files/90100_常见问题.md
tanghc 995d5ba623 4.3.0
2021-03-02 17:41:41 +08:00

118 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 常见问题
## spring cloud gateway [DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144]
如果POST请求body内容太大可能会报这个错误
- 解决版办法
网关指定配置`spring.codec.max-in-memory-size=xx`xx默认是262144即256K262144=256*1024
## primordials is not defined
node版本太高导致与gulp版本不兼容解决方法node退回11版本。参考https://blog.csdn.net/zxxzxx23/article/details/103000393
## Nacos指定group
可在配置文件中添加:`spring.cloud.nacos.discovery.group=xxx`指定group不加默认是DEFAULT_GROUP
## 在SpringCloudGateway中获取请求参数
```java
ApiParam apiParam = ServerWebExchangeUtil.getApiParam(exchange);
```
## 微服务端如何获取appId等参数
```java
OpenContext openContext = ServiceContext.getCurrentContext().getOpenContext();
System.out.println("app_id:" + openContext.getAppId());
System.out.println("token:" + openContext.getAppAuthToken());
```
## 如何关闭签名验证
- 针对某一个接口关闭签名验证
`@Open(value = "alipay.story.get", ignoreValidate = true)`
## 注册到eureka显示hostname非ip
```properties
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.cloud.client.ip-address}:${server.port}
```
```xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
</dependency>
```
参考https://www.jianshu.com/p/5ad8317961b7
## 直接访问服务的swagger-ui.html 提示access forbidden
找到微服务的`OpenServiceConfig.java`重写内部类Swagger2中的swaggerAccessProtected()方法返回false。线上请设置成true
```java
// 开启文档
@Configuration
@EnableSwagger2
public static class Swagger2 extends SwaggerSupport {
@Override
protected String getDocTitle() {
return "故事API";
}
@Override
protected boolean swaggerAccessProtected() {
return false;
}
}
```
## 调试网关出现服务不可用
打断点调试网关出现Read Timeout
参考https://blog.csdn.net/qq_36872046/article/details/81058045
yml添加
```properties
# https://blog.csdn.net/qq_36872046/article/details/81058045
# 路由转发超时时间毫秒默认值1000详见RibbonClientConfiguration.DEFAULT_READ_TIMEOUT。
# 如果微服务端 处理时间过长会导致ribbon read超时解决办法将这个值调大一点
ribbon.ReadTimeout= 60000
```
## 其它微服务没有开放接口,需要排除
在sop-gateway项目中配置
```properties
# 排除服务,多个用,隔开
sop.service.exclude=your-serviceId1,your-serviceId2
```
或者使用正则:
```properties
# 排除以"test-"开头的
# 多个正则用英文分号(;)隔开
sop.service.exclude-regex=test\\-.*
```
## ISV公私钥 & 平台公私钥
```java
ISV私钥必须ISV保存用来生成签名 --> ISV公钥必须平台保存用来校验签名是否正确
平台私钥非必须平台保存对返回结果生成签名 --> 平台公钥非必须ISV保存用来校验签名是否正确
```
总结:私钥负责加密生成签名,公钥负责校验签名是否正确