• 请不要在回答技术问题时复制粘贴 AI 生成的内容
banksiae
V2EX  ›  程序员

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

  •  1
     
  •   banksiae · May 31, 2018 · 8559 views
    This topic created in 3084 days ago, the information mentioned may be changed or developed.
    上次有个同事问了个问题,说有个接口,report 请求和返回的数据量都比较大,底层的数据量也比较大,然后反应就慢,说有没有什么方案。
    想了一下,除了队列,异步,接口轻量化拆分,然后没想什么好的办法。
    可以同事说,不能拆接口,数据要保持原样,这个想了好久没想出什么方案来,响应还要快,V 友们有什么方法没
    23 replies  •  2018-06-01 12:47:44 +08:00
    wshcdr
    wshcdr
    May 31, 2018
    1
    接口慢,用缓存啊。
    hooopo
    hooopo
    May 31, 2018
    2
    这是一个需求问题,不是技术问题
    Braid
    Braid
    May 31, 2018
    3
    能 orm 解决的尽量不要 api
    F281M6Dh8DXpD1g2
    F281M6Dh8DXpD1g2
    May 31, 2018
    4
    为啥大数据量要通过 api 返回?
    Light3
    Light3
    May 31, 2018
    5
    缓存???不知道你说的数据量大概多少?
    banksiae
    banksiae
    OP
    May 31, 2018
    6
    意思是保持数据一致性的同时,提高性能。但是后端数据处理慢的话,同步怎么会快呢
    shalk
    shalk
    May 31, 2018 via iPhone
    7
    听上去怎么像脑筋急转弯,一趟怎么快速运一堆货物. 没想到办法.
    提高网速和运算速度?我也不知道.
    mark
    spice630
    spice630
    May 31, 2018
    8
    分块,云存储的上传和下载接口都是这样设计的.
    链接里的代码是 ucloud ufile 的上传接口
    https://github.com/songtianyi/rrframework/blob/master/storage/ufile.go#L198
    bk201
    bk201
    May 31, 2018
    9
    大数据量除了分拆还是什么办法?压缩?
    luoway
    luoway
    May 31, 2018
    10
    Stream
    提前处理接收到的部分数据
    liuxu
    liuxu
    May 31, 2018
    11
    除了楼上们说的,如果可能的话,可以拆分后台服务,将串行步骤转为并行执行组合后返回
    LukeChien
    LukeChien
    May 31, 2018 via Android
    12
    加机器
    night98
    night98
    May 31, 2018
    13
    接口提前缓存好,每次请求直接拿缓存,除非你数据量上 G 级别,否则一般还是很快的。
    qloog
    qloog
    May 31, 2018
    14
    一个接口不要吐出所有的东西,按功能拆分,这样就不会有数量的接口了。
    opengps
    opengps
    May 31, 2018 via Android
    15
    软件都约束了不能动多少,就从硬件下手吧
    woscaizi
    woscaizi
    May 31, 2018 via iPhone
    16
    数据量在多少呢?
    速度慢是在哪个环节呢?
    如果后端不拖速度,瓶颈就在网络传输了吧。
    jssyxzy
    jssyxzy
    Jun 1, 2018
    17
    加 cache 啊
    ebingtel
    ebingtel
    Jun 1, 2018
    18
    应该从同步调用,改为异步轮询吧……
    annielong
    annielong
    Jun 1, 2018
    19
    如果是多条数据的话,不行就强行分页,再大数据 api 一次只生成 20 条传回来,哈哈
    willvvvvv1
    willvvvvv1
    Jun 1, 2018
    20
    数据量大,多大?
    collinswang
    collinswang
    Jun 1, 2018
    21
    看数据类型:
    如果是非实时数据,缓存+CDN
    如果是实时数据,对数据源数据进行缓存,并改为增量更新,只更新增量部分
    henglinli
    henglinli
    Jun 1, 2018 via iPhone
    22
    @willvvvvv1 懂行的
    luozic
    luozic
    Jun 1, 2018
    23
    先详细 metric 一下,实际现在的接口响应耗费的时间到底在哪? 再根据具体情况优化。 有些实际升级一下网络或者设置就可以解决问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1108 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 23:05 · PVG 07:05 · LAX 15:05 · JFK 18:05
    ♥ Do have faith in what you're doing.