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后发现再做同样的数据量请求时候请求正常
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在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
,以达到最佳的压缩效果与性能平衡。