需求
需要前端展示实时的订单数据信息。如下图所示,实时下单实时页面统计更新展示
【资料图】
思路方案
前端使用websocket 建立通信
后端监听数据库的binglog变更,实时得到最新数据,推送到前端
现状及问题
客户端想实现实时获取数据的变更,使用了websocket+kafkaMq,当数据库变更的时候,通过mq发送变更信息到队列,服务端消费。
由于客户端与服务端websocket连接,是单台服务器建立通道,数据库变更到服务器消费,只会是其中一台服务器消费,其他服务器消费不到,导致其他服务器连接的客户端,接收不到实时的数据。
解决方案
根据以上问题,目前发现四个解决方案
方案名 | 描述 | 优缺点 | 改动点 |
redis+定时 | 当服务器A消费时,在redis里存下所需推送的全部信息 所有服务器都启动一个定时器,定时遍历redis中需要推送的,根据当前服务器socket的连接,推送对应客户端 | 优点:在消费成功以及存redis成功后,可以保证实时数据不丢失,都能推到 缺点: 有定时,伪实时,处理逻辑相对复杂 每台服务器都遍历一次所有的数据,资源浪费 | 增加定时器,在定时器里根据redis里存的实时数据,一一推送到与本服务器连接的客户端 |
kafka多个消费组 | 目前所有服务器都配置了同一消费组,kafka推送的时候,若是在同一分组则只推其中一个,可以考虑把每个服务器的分组按照ip+分组名来分组,形成,一个服务器是一个分组,则可以都推送到 | 优点:广播形式,推送到所有服务器,实时性有保证,消息不易丢失 缺点: 每台服务器都消费所有数据,资源浪费 | 修改基础组件,或者新写消费者代码中分组部分 |
rocketMq队列 | 数据库变动时,通过rocketMq队列发送消息,rocketMq支持广播形式 | 优点:广播形式,推送到所有服务器,实时性有保证,消息不易丢失 缺点: 每台服务器都消费所有数据,资源浪费 | 1、接收到数据库变更信息后,发送mq 2、增加rocketMq消费业务代码实现 |
redis发布订阅 | 每个服务器通过redis都订阅固定频道的消息 当某个服务器得到数据库变更时,在redis里存好实时数据,然后再在redis频道发送变更的key 所有服务器里订阅到消息后,根据key查询redis中实时数据,推送到客户端 | 优点:redis广播,实时性有保证,轻量,易实现 缺点: 每台服务器都消费所有数据,资源浪费 若redis因为网络不稳定,会导致没有订阅到,消息易丢失,不保证消息必达 | 1、增加redis订阅频道 2、消费处增加发送频道信息功能 |
方案流程图
redis+定时
kafka多个消费组
rocketMq队列
redis发布订阅
优化
根据以上方案,发现一个统一的优化点,即每台服务器都会遍历实时数据,不够精准,后期可以通过,redis和分组里加ip来,相对精准推送。。
后记
主要是提供一个思路,漏洞或许也很多,欢迎大家不吝赐教。
参考:
websocket 详解:https://blog.csdn.net/weixin_50339217/article/details/125160323
websocket 集群处理方案:https://www.cnblogs.com/yangjl01/p/12740836.html
监听数据库变化参考:
https://blog.csdn.net/Zxb654614425/article/details/129057114
https://blog.csdn.net/qq_45821251/article/details/127490460
redis 发布订阅 : https://blog.csdn.net/w15558056319/article/details/121490953
前端实时更新数据的几种方式:https://www.jianshu.com/p/b7b363e5352a
其他参考:https://blog.csdn.net/qi923701/article/details/79253779
标签:
-
中国银行:400亿美元中期票据计划于港交所上市中国银行发布公告称,已向香港联合交易所有限公司提出申请可...
-
疑似巴厘岛受害人账号被扒,小红书客服:平台无权限随意封号,将上报近日,“中国情侣巴厘岛酒店身亡案”引发关注。疑似受害人账...
-
快讯:美图公司吴欣鸿:AIGC将带来影像生产力的大爆发据36氪消息,美图公司创始人兼首席执行官吴欣鸿表示,影像和A...
-
每日头条!小度回应将发布智能手机传闻:消息属实,下周见消息称百度旗下小度将进军智能手机市场,并计划在5月下旬发布...
-
消息称三星7月将发布新款折叠手机据消息人士透露,三星将在7月发布第五代折叠手机,这一时间较...
-
天天消息!云从科技将于5月18日正式发布大模型产品据36氪消息,云从科技将于5月18日正式发布大模型产品。据知情...
-
当前关注:阿里云发布“金融级云原生”,持续推动金融机构IT架构升级鞭牛士报道5月8日,阿里云正式发布“金融级云原生”,从早期...
-
盘点杨幂嘉行传媒商业版图_世界速看料今日,杨幂官宣离开嘉行传媒,目前杨幂工作室微博已改名。天...
-
男子在火车上被人持刀杀害,官方回应:案件正在调查据顶端新闻,近日,有网友发布视频称,5月4日从株洲开往耒阳...
-
董宇辉:因为带货期间讲“废话”,曾写了半年多检讨书 焦点短讯日前,董宇辉在CCTV-1《开讲啦》谈及转型直播带货的经历。董...
- 智联世界,元生无界!快手虚拟人IP亮相2022人工智能大会
2022-09-07 10:47:54
- 机器人界“奥林匹克”!2022世界机器人大会8月18日举行
2022-08-10 09:58:58
- 2025年全球人口将达到90亿!机器人将在农业领域大显身手
2022-07-14 09:41:10
- 中科院院士蒋华良:AI+分子模拟与药物研发将大有可为
2022-07-14 09:37:00
- “千垛之城荷你有约” 2022兴化市荷文化旅游节正式开幕
2022-07-07 09:28:34