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

2021-09-09 08:49:27 +08:00
 Geekerstar

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

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

感谢大家!!!

3029 次点击
所在节点   Big Data
18 条回复
zbn
2021-09-09 08:52:08 +08:00
redis incr
learningman
2021-09-09 09:19:00 +08:00
要实时到什么程度,轮询可以吗?
kop1989
2021-09-09 09:22:12 +08:00
1 、业务系统完全不能够改动?
2 、实时是真的“实时”?

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

如果真是特种行业,再考虑数据库 binlog 或者 flink 那一套东西吧,其实我感觉那一套搞下来,延时也不小

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/800736

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX