一个数据量很大的 API 接口,需要实时更新有什么好的解决办法吗?

2021-05-02 14:05:46 +08:00
 Zerah

各位大佬好,现在我这里遇到的请求是这样的。

有一个 POST 接口,每次返回 JSON 数据大小在 5MB - 10MB 左右,每次请求会有一些新数据,但是短时间间隔内会有重复的数据且大部分是重复数据

请问有什么方案可以更好的解析数据,提取我要的新数据,我拿到新数据再处理数据。

感谢各位大佬。

3550 次点击
所在节点    Java
15 条回复
ichanne
2021-05-02 14:08:27 +08:00
长连接?
imdong
2021-05-02 14:22:19 +08:00
比较好的方案就是,首次加载完整数据,同时长连接接收变动数据推送。

本地实时合并数据。
opengps
2021-05-02 14:23:03 +08:00
分为两个接口:
1,全量接口
2,差异接口
opengps
2021-05-02 14:24:51 +08:00
所谓差异接口,其实是比对时间,更新时间大于某个点的,返回,客户端调用时候需要把上次的全量时间传入,其实就是一层更新时间过滤,来减少返回量
Lemeng
2021-05-02 14:26:24 +08:00
嗯嗯,楼上说的是目前通用的
redtea
2021-05-02 15:01:34 +08:00
JSON 结构调整一下,返回时数据压缩一下,就能小很多了。
Jooooooooo
2021-05-02 15:03:52 +08:00
数据量大, 总是有新增, 新增又很少, 考虑怎么做成增量同步的.

找一个方法确定数据的游标, 每次拿数据只拿比当前游标更加新的数据
VeryZero
2021-05-02 15:14:29 +08:00
方法 1:放弃轮训,改为推送
方法 2:增加一个返回 md5 的接口,先请求该接口确定数据有没有变化,变化以后再请求另一个接口,减少开销
learningman
2021-05-02 16:06:15 +08:00
@VeryZero 不用 MD5,标准里就有用来干这个的。Etag
Yunen
2021-05-02 16:53:50 +08:00
使用 websocket 进行主动推送,只推送新内容就好
SingeeKing
2021-05-02 17:50:09 +08:00
为什么我看楼主的需求好像 API 是第三方提供的
luozic
2021-05-02 18:00:01 +08:00
md5 + 变更滑动窗口。
screen
2021-05-02 19:18:10 +08:00
差量更新+cdn
lu5je0
2021-05-02 19:32:48 +08:00
可以参考游戏更新
GGGG430
2021-05-04 17:44:20 +08:00
长连接要求较高不建议, 拆分接口比较容易

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

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

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

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

© 2021 V2EX