大数据量请求的 api 接口如何设计

2018-05-31 15:09:52 +08:00
 banksiae
上次有个同事问了个问题,说有个接口,report 请求和返回的数据量都比较大,底层的数据量也比较大,然后反应就慢,说有没有什么方案。
想了一下,除了队列,异步,接口轻量化拆分,然后没想什么好的办法。
可以同事说,不能拆接口,数据要保持原样,这个想了好久没想出什么方案来,响应还要快,V 友们有什么方法没
7793 次点击
所在节点    程序员
23 条回复
wshcdr
2018-05-31 15:15:55 +08:00
接口慢,用缓存啊。
hooopo
2018-05-31 15:23:29 +08:00
这是一个需求问题,不是技术问题
Braid
2018-05-31 15:24:52 +08:00
能 orm 解决的尽量不要 api
liprais
2018-05-31 15:26:22 +08:00
为啥大数据量要通过 api 返回?
Light3
2018-05-31 15:32:32 +08:00
缓存???不知道你说的数据量大概多少?
banksiae
2018-05-31 15:49:18 +08:00
意思是保持数据一致性的同时,提高性能。但是后端数据处理慢的话,同步怎么会快呢
shalk
2018-05-31 15:58:31 +08:00
听上去怎么像脑筋急转弯,一趟怎么快速运一堆货物. 没想到办法.
提高网速和运算速度?我也不知道.
mark
spice630
2018-05-31 18:11:32 +08:00
分块,云存储的上传和下载接口都是这样设计的.
链接里的代码是 ucloud ufile 的上传接口
https://github.com/songtianyi/rrframework/blob/master/storage/ufile.go#L198
bk201
2018-05-31 18:16:52 +08:00
大数据量除了分拆还是什么办法?压缩?
luoway
2018-05-31 18:25:48 +08:00
Stream
提前处理接收到的部分数据
liuxu
2018-05-31 19:10:18 +08:00
除了楼上们说的,如果可能的话,可以拆分后台服务,将串行步骤转为并行执行组合后返回
LukeChien
2018-05-31 19:23:13 +08:00
加机器
night98
2018-05-31 21:41:33 +08:00
接口提前缓存好,每次请求直接拿缓存,除非你数据量上 G 级别,否则一般还是很快的。
qloog
2018-05-31 22:02:45 +08:00
一个接口不要吐出所有的东西,按功能拆分,这样就不会有数量的接口了。
opengps
2018-05-31 22:07:14 +08:00
软件都约束了不能动多少,就从硬件下手吧
woscaizi
2018-05-31 22:12:13 +08:00
数据量在多少呢?
速度慢是在哪个环节呢?
如果后端不拖速度,瓶颈就在网络传输了吧。
jssyxzy
2018-06-01 01:36:11 +08:00
加 cache 啊
ebingtel
2018-06-01 08:53:49 +08:00
应该从同步调用,改为异步轮询吧……
annielong
2018-06-01 09:25:43 +08:00
如果是多条数据的话,不行就强行分页,再大数据 api 一次只生成 20 条传回来,哈哈
willvvvvv1
2018-06-01 09:28:45 +08:00
数据量大,多大?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/459250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX