发券、短信等任务系统的设计和实现
前言:当前外卖、叫车、共享单车等市场比较火爆;各个公司为了抢占市场,不惜投入大量资金来补贴拉取用户,从而占领市场。比如美团,滴滴,摩拜等都会通过各种各样的活动奖励来拉新以及留存用户;常用的手段就是发券,然后短信通知用户,如下图:1-1所示。那么这种任务系统的架构设计是什么样子呢,下面就做个大概介绍。
图1-1 短信通知发券
一、任务系统结构设计介绍
图2-1 任务系统设计架构
任务系统架构大的可分为四模块,如图2-1所示。第一个模块是统一对外提供服务的接口,简称“应用层”;第二个模块是任务预
处理模块,包括实时和准实时处理模块;第三个模块是数据库部分;第四个模块是封装下游的各个业务模块,简称“下游业务模块”。
下面我们将逐一介绍各个模块。
应用层。应用层是我们这个系统抽象出来之后,暴露对外提供的通用且唯一的接口,这里就体现了营销类任务系统设计原则中的
通用性。目前支持券、积分、现金、短信以及push等形式的任务,业务方不需要关注这些任务是怎么实现的,只需要按照我们提供的
协议调用接口就行。
预处理模块。我们提供了两种可接入方式,一种是实时接口,另一种是准实时接口。实时接口会在请求结束返回当前执行结果,
这种接口适应于对实时性要求非常高的任务,比方现金奖。另一种是准实时接口,只所以是准实时是因为执行完请求不会立即返回
结果,给接入方的感觉就是成功了。准实时任务我们会先入MQ队列,然后保存到数据库中,最后再通过后台异步定时脚本从数据库
中把任务取出来执行,这么做有2个好处,第一是通过MQ削峰,既然是抽象通用的任务系统,那必然会在应用层对接很多业务方,
流量自然也非常大(目前我们系统QPS可以保证打到10000左右),为了不至于因为上游的大促活动导致流量暴增从而对任务系统造
成影响,我们借助于MQ来抵挡“洪峰”。可以根据系统的QPS来设置MQ的消费速度,从而保证任务系统的稳定性。
数据库。数据库是用来保存应用层下来的任务数据,一个是为了case回放时用到,另一个是对于准实时的任务,这里保存的数
据供后续实际处理用。
下游业务模块。下游业务模块衔接任务系统和下游真正的业务方,封装下游各个业务,如发券系统,短信系统等等,然后在应
用层里新增券和短信等协议类型,应用方按照协议接入即可,简单统一。理论上这个模块可以横向无限扩展,只要有新的下游业务,
我们都可以封装然后提供给应用层。
二、任务系统应用层协议定义
协议比较简单,如图2-2所示。type表示需要执行的任务类型,每种类型是一个数组,所需要的参数也不同(依赖下游模块),应用层用户根据任务系统给定的协议接入,支持执行多个任务,比方发券+短信,任务系统会按照顺序有序的执行,先执行数组中第一个数组任务,执行成功再执行第二个,依次类推,如果有一个执行失败,后面的将不会再执行。而且,我们还有重试机制,比方其中一个任务执行失败,我们会按照一定方法重试,直至达到某一个阈值之后将不再重试。
发券、短信等任务系统的设计和实现相关推荐
- 电力公司SMS短信群发平台的设计与实现
潍坊科技学院 本科毕业设计(论文) 题 目 电力公司SMS短信群发平台的设计与实现 院(系) 专 业 科学与技术 学 号 学生姓名 指导教师 刘效伟 起讫日期 2015.1.11-2015.6.6 设 ...
- 基于混合密码体制的端到端短信通讯系统(Java实现+AES+RSA+json)
基于混合密码体制的端到端短信通讯系统(Java实现+AES+RSA+json) 随着移动通信技术及相关领域服务的快速发展,短信内容常常涉及用户隐私和信息安全.用户使用短信传输一些重要的私人信息,如:手 ...
- 嵌入式毕设分享 GSM手机短信收发系统(源码+论文)
文章目录 1 简介 1 硬件设计 1.1 TC35i模块 1.2 单片机硬件链接 2 软件设计 2.1 软件流程图 3 关键代码 4 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个 ...
- stm32毕设分享 GSM手机短信收发系统(源码+论文)
文章目录 1 简介 1 硬件设计 1.1 TC35i模块 1.2 单片机硬件链接 2 软件设计 2.1 软件流程图 3 关键代码 4 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个 ...
- STM32单片机蓝牙APP GSM短信安全监控系统湿度烟雾入侵报警系统
实践制作DIY- GC0147---蓝牙APP GSM短信安全监控系统 基于STM32单片机设计---蓝牙APP GSM短信安全监控系统 二.功能介绍: 硬件组成:STM32F103C系列最小系统板 ...
- Android软件开发之发送短信与系统短信库解析(三十)
Android软件开发之发送短信与系统短信库解析 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/arc ...
- Android内容提供器的应用,基于Android的智能终端应用防护系统短信过滤子模块的设计与实现...
摘要: 智能终端随着3G业务的推广而普及,在各种平台的竞争中,Android逐渐占据了主流,谷歌学习苹果的应用商店模式,推出了自己的应用商城.面对应用市场的繁荣,用户的终端安装了形形色色的应用,许多安 ...
- 单片机控制GSM模块实现短信收发的软件设计
摘要:借助系统模型,阐明GSM模块收发短信的基本概念以及串口控制SMS的基本原理.详细介绍单片机控制GSM模块工作的软件实现过程,对怎样用单片机控制GSM模块收发短信进行探讨,也对程序设计的主体思想作 ...
- 企业短信应用平台的设计
手机短信作为一种非常重要的沟通方式,正在被越来越多的企业重视.本文介绍的企业短信应用平台简单易行,可以为企业提供方便灵活的.基于短信的双向交流渠道. 多年来,及时准确地采集前端销售数据.快速地将各种消 ...
最新文章
- php中常见的错误类型有,JavaScript中常见的错误类型有哪些?(详细介绍)
- 分享丨李飞飞、吴恩达、Bengio等人的顶级深度学习课程
- jsp页面中使用超链接标签a中的属性href和onclick同时触发怎么执行
- WebAPi接口安全之公钥私钥加密
- 目标检测带标签样本增广工具
- 20145207 《Java程序设计》第4周学习总结
- java获得电脑性能_Java:使用SingletonStream获得性能
- 感量越大抑制频率约低_脉冲信号是什么?它与频率,占空比,正、负逻辑间是什么关系?...
- 如何使用 indent 美化你的代码
- sql语句为什么大写居多_懂EXCEL就会SQL,从此查数不求人
- 兰州大学c语言课程作业答案,2016兰州大学C语言程序设计课程作业1附答案.doc
- 18. Element firstChild 属性
- tensorRT程序设计框架_4
- 【图卷积网络】Graph Convolutional Network
- opencv检测动态物体
- 英雄联盟一直连接服务器win10,手把手修复win10系统英雄联盟连接不上服务器的解决方法...
- 三菱FX5U常见问题解析
- WordPress 安全漏洞
- Windows桌面端录屏采集实现
- 游戏程序必备spyder程序--可进可退的多级菜单系统