开发者社区 问答 正文

spring cloud Fegin请求压缩配置最小压缩的文档大小 2M报错

spring cloud Fegin的请求配置压缩最小压缩的文档大小这个参数一般如何设置比较合适?

之前默认一直配置的如下

feign.compression.request.enabled=true
feign.compression.request.mime-types=text/xml,application/xml,application/json
feign.compression.request.min-request-size=2048

但是当请求提交的数据量过大时候会报如下错误

{
	"timestamp":1547637857482,
	"status":400,
	"error":"Bad Request",
	"message":"Required request body is missing: 。。。。。 throws java.lang.Exception",
}

当请求提交的数据量较小时请求正常。

经过测试如果将min-request-size配置调大后,比如204800后发现再做同样的数据量请求时候请求正常

展开
收起
huc_逆天 2020-05-27 21:24:14 606 分享 版权
阿里云 AI 助理回答

在Spring Cloud Feign中,feign.compression.request.min-request-size这个参数用于设置请求体压缩的最小阈值,单位是字节(bytes)。这意味着只有当请求体的大小超过这个阈值时,Feign才会对请求体进行压缩。

你遇到的问题是在数据量较大时未启用压缩导致了错误,而减小min-request-size的值理论上应该使得更多请求被压缩,但实际上却因为请求体太大未达到压缩条件而报错。这可能是由于理解上的一个误区:实际上应增加此值来确保较大的请求体能够被压缩。

你通过将feign.compression.request.min-request-size从2048字节调整到204800字节解决了问题,这是因为这样配置后,即使是较大的请求体也会被纳入压缩范围,从而避免了因请求体过大未被压缩而导致的错误。

因此,关于如何设置这个参数比较合适,通常需要根据你的应用实际发送请求的数据量大小来决定。如果应用中大部分请求的数据体都相对较大,那么可以适当提高这个阈值,比如你测试成功的204800字节,或者根据实际情况进一步调整。但同时也要注意,过高的阈值可能会导致较小的请求体也被无谓地压缩,增加了处理时间。所以,找到一个平衡点是很关键的,既要确保大请求体能被有效压缩,又要避免对性能造成不必要的影响。

总结来说,没有绝对的最佳实践数值,建议根据实际请求内容的大小和性能测试结果来动态调整feign.compression.request.min-request-size,以达到最佳的压缩效果与性能平衡。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答