不影响业务系统的情况下如何做实时大屏展示呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Geekerstar
V2EX    Big Data

不影响业务系统的情况下如何做实时大屏展示呢?

  •  
  •   Geekerstar 2021-09-09 08:49:27 +08:00 3712 次点击
    这是一个创建于 1570 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前需要做个大屏展示,不能对业务系统有侵入性,需要实现类似于新增一件商品大屏上数字就实时加 1,数据库 MySQL

    目前考虑是通过 canal 通过 binlog 订阅某几张表来实现新增通知机制,有没有什么更好的办法呢?是个小工程,周期很短。

    感谢大家!!!

    第 1 条附言    2021-09-09 12:38:14 +08:00
    如果轮询的话,做不到实时,并且每次查询很慢,即使并发查询所有的统计项也要个几秒
    18 条回复    2021-09-09 21:08:11 +08:00
    zbn
        1
    zbn  
       2021-09-09 08:52:08 +08:00
    redis incr
    learningman
        2
    learningman  
       2021-09-09 09:19:00 +08:00 via Android
    要实时到什么程度,轮询可以吗?
    kop1989
        3
    kop1989  
       2021-09-09 09:22:12 +08:00
    1 、业务系统完全不能够改动?
    2 、实时是真的“实时”?

    一般的大屏都是延时的轮询数据。
    如果真的需要实时,则一般是从业务系统直接异步推过来,然后延时做数据矫正。
    Kilerd
        4
    Kilerd  
       2021-09-09 09:51:49 +08:00
    prometheus 不行吗?
    thet
        5
    thet  
       2021-09-09 09:55:02 +08:00 via iPhone
    加从库,统计用从库
    ipwx
        6
    ipwx  
       2021-09-09 09:57:07 +08:00
    不能改业务系统但是要实时刷新,除了轮询还有啥办法。。。
    eric1202
        7
    eric1202  
       2021-09-09 09:57:47 +08:00
    轮询足够了
    zzfly256
        8
    zzfly256  
       2021-09-09 10:47:54 +08:00
    自己写个 Promethues Exporter 吧,可以配合 Grafana 做大屏展示。我司在用着,感觉不错
    Felldeadbird
        9
    Felldeadbird  
       2021-09-09 10:54:38 +08:00
    搞多一个从库。业务代码单独查询从库。 内网从库速度飞快。
    THESDZ
        10
    THESDZ  
       2021-09-09 10:57:17 +08:00
    定时任务去计算和存储,前端再轮询获取计算结果
    kssdxw
        11
    kssdxw  
       2021-09-09 15:19:29 +08:00
    kafka connect 的 debezium 插件读取 mysql binlog,然后再 kafka 消费端如果业务复杂就接一个 flink 实时打到 OLAP 数据库,不复杂就直接写个后端项目接个缓存开接口反给前端,如果比这还轻的话那就从库轮询。
    kssdxw
        12
    kssdxw  
       2021-09-09 15:21:49 +08:00
    高实时的话直接用我上面第一个方法,我们在用这套搭数据系统,只要没有很重的状态,内网毫秒级别能拿到计算结果。
    lycbug666
        13
    lycbug666  
       2021-09-09 15:36:18 +08:00
    flink-cdc+flink 处理+写入 mysql
    Jooooooooo
        14
    Jooooooooo  
       2021-09-09 16:50:58 +08:00
    监听 binlog 异步写缓存呀
    kekxv
        15
    kekxv  
       2021-09-09 18:08:06 +08:00 via iPhone
    你可以没 5 秒查询一次,然后在五秒内平均 0.5 秒加一次数值,就可以了
    otakustay
        16
    otakustay  
       2021-09-09 18:32:44 +08:00   1
    每 10 秒查一次,前 N 次查询确定一大概的增长速率,后续 10 秒间隔里自己画个贝塞尔曲线假更新数据就行,10 秒后新数据到了看一看,如果新数据比假更新出来的还少就不要更新(避免数字变小),然后修正下一个周期的假更新速率
    说难听的叫骗人,说好听的这叫乐观更新!
    LeoJ
        17
    LeoJ  
       2021-09-09 18:42:10 +08:00
    Web 前旁路报文捕获,还原 http 协议,提字段做统计吧~
    soupu626
        18
    soupu626  
       2021-09-09 21:08:11 +08:00
    一般讲,除非是极特殊特种行业比如电网之类的,没有哪个行业是忍受不了秒级的大屏延迟的,归根到底,大屏只是给人看的,做决策不会差这几秒的问题,优先从业务上搞定需求方,如果真的是面子工程,必须要每秒滚动,就和上面的老哥说的一样,这个周期查出来,然后再下次查询的周期里,平均或者随机的展示出去。。。好看点

    如果真是特种行业,再考虑数据库 binlog 或者 flink 那一套东西吧,其实我感觉那一套搞下来,延时也不小
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2575 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 05:15 PVG 13:15 LAX 21:15 JFK 00:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86