V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shade
V2EX  ›  程序员

如何快速从多个异地数据库中查询数据并汇总,在 restful api 请求中如何处理长时间任务?

  •  
  •   shade · 2016-09-07 20:27:19 +08:00 · 2869 次点击
    这是一个创建于 3000 天前的主题,其中的信息可能已经有所发展或是发生改变。
    5 条回复    2016-09-11 12:52:44 +08:00
    darkfireworld
        1
    darkfireworld  
       2016-09-07 22:20:21 +08:00
    1. 传输数据量不大的话,那么是查询数据的问题,优化 RESTFul api 的响应速度。如果传输数据量大的话,考虑异地数据库优先处理数据,然后汇总。实在不行,就复制异地数据库到本地,然后做离线计算。
    2. async
    20150517
        2
    20150517  
       2016-09-08 06:28:51 +08:00
    看到这个想起最近刚碰到个坑,就是我们有个长时间处理的 restful api,处理等待时间超过 60 秒,然后 haproxy 有个默认设置就是 60 秒不响应,自动再次调用....后果就是每个超过 60 秒的读取都被调用了两次
    domty
        3
    domty  
       2016-09-08 10:19:34 +08:00
    觉得响应时间不理想最简单粗暴的方法就是缓存。。。
    winglight2016
        4
    winglight2016  
       2016-09-08 20:16:33 +08:00
    对于服务端长时间任务,有两种方法: 1.非阻塞; 2.websocket
    ytf
        5
    ytf  
       2016-09-11 12:52:44 +08:00
    1.多数据库汇总,多个线程来同时查询,耗时主要在数据库和网络,速度取决于最慢的那个查询,可以尝试一些分布式数据库的中间件来处理
    2.如果能拆分任务的话,将任务拆分到更小粒度,发挥并行计算的优势。也可以使用异步调用的方式。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   940 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:23 · PVG 06:23 · LAX 14:23 · JFK 17:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.