mpm led 系统

企业积分制团队激励,利用led实现奖扣数据显示;在线终端数900多台,每月增长量在60台左右;基于Netty+MongoDB,并使用RocketMQ解耦需求;在“延迟级别、Thread Pool”上参考RocketMQ的源码实现;

整体架构

主要实现高度解耦:1、SaaS服务做为主程序服务(终端socket连接、推送、报表);2、环形队列、延迟级别及线程池,是给使用者定制的一套插件;3、展现层用于React+Redux+Webpack+Antd

1、SaaS服务

设计仅基于MQ实现异步消息推送和报表统计;其设计目的就是简单核心功能,方便后期插件化扩展;

整体结构

2、扇形写,解决复杂场景

扇形写可以实现高效读,使用者可个性化设置消息有效时间,有助于环形队列实现;

单数据多终端输出

3、环形队列

本实现利用MongoDB的document的数据有效机制,简化环形队列复杂可能性;其主要实现消息在有效时间内可重复被推送与显示;

环形队列

4、统计

基于运维考虑,增加“上线、离线、发送、回执、心跳”等数据统计;
统计数据有效为7天(使用MongoDB数据有效期机制),所有类型数据先写入到RocketMQ中,然后再把消息体和统计写入到MongoDB中;
1、上线、离线对比图:分析该终端当前所处的状态、和连接稳定性分析;
2、发送、回执对比图:分析数据发送丢包情况;
3、心跳、未知对比图:针对状态做更细微分析;

上线、离线对比图
推送、回执对比图
心跳、未知对比图

5、场景优化

5.1、对接mpm 2.3系统(已解决):

场景说明:v2.3.0遗留问题在于,所有数据以屏号为key存储在Redis的list中,技术需要从Redis把N个屏的数据同步到环形队列中;

每1分钟推送一次数据,每次推送5条;
解决方案:
利用定时器间隔N秒,生成任务交给线程池去执行;需要考虑同步效率、MongoDB和Redis连接池等问题;
线程池运行效率、间隔时间和同步数量的均衡问题;由于每个屏均用队列,会比较吃线程,会造成线程池排队时间长的问题;
优化为:长间隔少量的同步方式;
1、同步间隔时间设置为:30s,同步数量设置为:5条;
2、增加同步线程池的并发量从6提高到30;

5.2、对接mpm 2.4系统:

场景说明:v2.4.0遗留问题在于,所有屏消息均存储在Redis的一个list中,这种结构会影响多屏数据同步不均衡,造成屏闲置的情况;
解决方案:
以最快的速度消费队列的数据;
1、提高线程池并发量从6提高到30;
1、短间隔多量的同步方式


很高兴认识你,我们都一样,有过迷茫却从未放弃;害怕孤独可从不寂寞。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,941评论 2 89
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_X自主阅读 15,982评论 3 119
  • 世间已再无二人能唱出如此细腻的歌,听懂已是曲中人,歌词中:“是你的遗憾与我有关”戳中泪点。没有句点已经很完美,谈过...
    圆融无碍阅读 123评论 0 0
  • 三.那样的人 第二天一早,我起床洗漱完毕,摆弄昨天还没有拿出行李的箱子。然后下去吃早餐,路上寥寥几个人。我听到背后...
    知阳未知阅读 354评论 0 1
  • 不是孤独, 不是高冷, 仅仅是怯懦。 到了嘴边的话, 却成了呼出的空气。
    黑槐树阅读 274评论 0 7