V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
banksiae
V2EX  ›  程序员

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

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