之前的小项目里提供了一个 REST 接口,接口一堆参数,其中包含一个 image 图片,用的是 base64 传递。这个接口主要逻辑是处理一段业务后,将 base64 图片会存到本地。

就这样一个接口,发布之后每隔一段时间就会出现几次请求超时的情况,正常情况接口再 100ms 以内响应的,但是运行一段时间后,有时会超过 10s 以上才给响应,甚至超时的情况。

现在想解决这个问题,做了如下处理:

1. 用 apifox 开多个线程调用接口,问题可以复现
2. 把 base64 去掉,不传,问题不再复现
3. 传 base64 ,但是接口里面所有的逻辑都注释掉,问题也可以复现

那是不是意味着 REST 请求数据包就不能太大,能通过配置的方式缓解/解决这个问题吗?

求教~
举报· 216 次点击
登录 注册 站外分享
17 条回复  
lsk569937453 小成 2024-7-31 14:08:34
开发语言用的什么啊,可以把复现的代码直接放到 gist 上,分分钟就给你解决了。

REST 接口里传 Base64 会导致一段时间后响应越来越慢吗?
答案:不会。
furlxy 小成 2024-7-31 14:13:29
写死一段短一点的 base64 看看呢,我猜是你内容太多了
mxT52CRuqR6o5 小成 2024-7-31 14:13:41
有没有可能是把图片存到挂载到内存文件系统的目录里了,时间长了内存就爆了
lovedebug 小成 2024-7-31 14:16:30
GET 请求? 小心超长~
sazima 小成 2024-7-31 14:19:21
是不是把 base64 字符串写到日志里面了。
lambdaq 小成 2024-7-31 14:32:04
这么卡? gzip 一下试试。
pigf 小成 2024-7-31 14:43:48
@lovedebug ?
cnzjl 小成 2024-7-31 14:48:53
感觉是不是写入图片那部分导致的,加点 log 看看?
evan1 小成 2024-7-31 14:57:10
图片 base64 太长了吧。

换一个短一点的,然后再换一个超长的复现看看。
12下一页
返回顶部