V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qdzzyb
V2EX  ›  问与答

不懂就问 交易所的 k 线是怎么做到实时?

  •  
  •   qdzzyb · 2020-11-27 14:16:46 +08:00 · 3648 次点击
    这是一个创建于 1441 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有个类似 k 线的需求 有点不知道从何下手 数据都在 mysql

    第 1 条附言  ·  2020-11-27 16:52:09 +08:00
    目前 mysql 里的是交易数据

    后台会有定时任务计算 k 线数据

    最新一根 k 线 是不是可以根据当前的时间戳来算,前端轮询就可以了?

    15 分钟举例 当前 15 分钟的 k 线实时计算,之前的数据直接读数据库的记录就可以了
    第 2 条附言  ·  2020-11-27 16:53:02 +08:00
    另外交易数据是从一个队列消费来的
    14 条回复    2020-11-28 13:12:38 +08:00
    libasten
        1
    libasten  
       2020-11-27 14:25:13 +08:00
    监听数据写入 mysql 的事件?触发了就绘制一下线图?
    VVVV7
        2
    VVVV7  
       2020-11-27 14:28:20 +08:00
    websockect 长连接能做到 服务端主动推送到网页上
    toma77
        3
    toma77  
       2020-11-27 14:31:39 +08:00
    websocket
    checkzhzzzzz
        4
    checkzhzzzzz  
       2020-11-27 15:06:31 +08:00
    redis+websocket
    newbieRenew
        5
    newbieRenew  
       2020-11-27 15:26:57 +08:00 via iPhone
    可以用 Server-Sent Events
    tairan2006
        6
    tairan2006  
       2020-11-27 15:28:43 +08:00
    binlog 解析,然后长连接推送
    hronro
        7
    hronro  
       2020-11-27 15:56:14 +08:00
    你应该把你的需求具体描述出来,比如你希望知道是前端部分何如实现还是后端部分如何实现?
    还有你的数据量有多大,数据库查询需要花多久?

    如果数据量很小的话,很好实现,直接前端每隔 1s 轮询一次接口就行了。
    如果数据量很大,每次查询数据库需要花费几十秒甚至更多的话,那就要上一套更复杂的方案了。
    qdzzyb
        8
    qdzzyb  
    OP
       2020-11-27 16:48:55 +08:00
    @hronro 感谢 我应该说详细一点的
    hehe12980
        9
    hehe12980  
       2020-11-27 17:36:03 +08:00
    正常的交易所都是 前端用 node.js 对接 redis 采用消息订阅模式 再加 websocket 如果直接后台 推的话 数据量大 占用带宽
    shm7
        10
    shm7  
       2020-11-27 19:11:12 +08:00 via iPhone
    是一个离散统计表示
    hellsnow
        11
    hellsnow  
       2020-11-27 19:47:40 +08:00
    sse
    jones2000
        12
    jones2000  
       2020-11-27 23:00:25 +08:00
    tcp 或 ws 长连接订阅推送, 数据存内存,1 台机器有压力, 就由主数据服务器推送到 2 级数据服务器,由 2 级数据服务器推送给客户端。 用户多了,多部署几台 2 级数据服务器就可以, 一般实时行情系统不从 mysql 或 redis 里面取,慢慢慢。
    black11black
        13
    black11black  
       2020-11-28 02:41:50 +08:00
    @libasten 差太远了兄弟,关系型数据库首先顶不住这种压力,还加事务更顶不住了。。大券商每天 9 点半 QPS 可能两三百万,mysql+事务估计能同时负载 20-30 人?
    nl101531
        14
    nl101531  
       2020-11-28 13:12:38 +08:00 via iPhone
    这种都时序数据库,背后有实时降采样聚合,数据算的很快。前端和后端就 ws 实时推送
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5364 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 07:46 · PVG 15:46 · LAX 23:46 · JFK 02:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.