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