您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

聊聊「短信」渠道的设计与实现

时间:2023-05-26 13:38:32  来源:知了一笑  作者:
从技术角度来看的话,涉及经典的生产消费模型,第三方平台对接,任务和状态机管理等,消息中心作为分布式架构的基础服务,在设计上还要考虑一定的复用性。

一、背景简介

在常规的分布式架构下,「消息中心」的服务里通常会集成「短信」的渠道,作为信息触达的重要手段,其他常用的手段还包括:「某微」、「某钉」、「邮件」等方式;

对于《消息中心》的设计和实现来说,在前面已经详细的总结过,本文重点来聊聊消息中心的短信渠道的方式;

 

图片

 

短信在实现的逻辑上,也遵循消息中心的基础设计,即消息生产之后,通过消息中心进行投递和消费,属于典型的生产消费模型;

二、渠道方对接

在大部分的系统中,短信功能的实现都依赖第三方的短信推送,之前总结过《三方对接》的经验,这里不再赘述;

但是与常规第三方对接不同的是,短信的渠道通常会对接多个,从而应对各种消息投递的场景,比如常见的「验证码」场景,「通知提醒」场景,「营销推广」场景;

 

图片

 

这里需要考虑的核心因素有好几个,比如成本问题,短信平台的稳定性,时效性,触达率,并发能力,需要进行不同场景的综合考量;

验证码:该场景通常是用户和产品的关键交互环节,十分依赖短信的时效性和稳定性,如果出问题直接影响用户体验;

通知提醒:该场景同样与业务联系密切,但是相对来说对短信触达的时效性依赖并不高,只要在一定的时间范围内最终触达用户即可;

营销推广:该场景的数据量比较大,并且从实际效果来看,具有很大的不确定性,会对短信渠道的成本和并发能力重点考量;

三、短信渠道

1、流程设计

从整体上来看短信的实现流程,可以分为三段:「1」短信需求的业务场景,「2」消息中心的短信集成能力,「3」对接的第三方短信渠道;

 

图片

 

需求场景:在产品体系中,需要用到短信的场景很多,不过最主要的还是对用户方的信息触达,比如身份验证,通知,营销等,其次则是对内的重要消息通知;

消息中心:提供消息发送的统一接口方法,不同业务场景下的消息提交到消息中心,进行统一维护管理,并根据消息的来源和去向,适配相应的推送逻辑,短信只是作为其中的一种方式;

渠道对接:根据具体的需求场景来定,如果只有验证码的对接需求,可以只集成一个渠道,或者从成本方面统筹考虑,对接多个第三方短信渠道,建议设计时考虑一定的可扩展;

2、核心逻辑

单从短信这种方式的管理来看,逻辑复杂度并不算很高,但是很依赖细节的处理,很多不注意的细微点都可能导致推送失败的情况;

 

图片

 

实际在整个逻辑中,除了「验证码」功能有时效性依赖之外,其他场景的短信触达都可以选择「MQ队列」进行解耦,在消息中心的设计上,也具备很高的流程复用性,图中只是重点描述短信场景;

3、使用场景

3.1 验证码

对于「短信」功能中的「验证码」场景来说,个人感觉在常规的应用中是最复杂的,这可能会涉及到「账户」和相关「业务」的集成问题;

【验证码获取】

这个流程相对来说路径还比较简短,只要完成手机号的校验后,按照短信推送逻辑正常执行即可;

 

图片

 

这里需要说明的是,为了确保系统的安全性,通常会设定验证码的时效性,并且只能使用一次,但是偶尔可能因为延时问题,引起用户多次申请验证码,基于缓存可以很好的管理这种场景的数据结构;

【验证码消费】

验证码的使用是非常简单的,现在很多产品在设计上,都弱化了登录和注册的概念,只要通过验证码机制,会默认的新建帐户和执行相关业务流程;

 

图片

 

无论是何种业务场景下的「验证码」依赖,在处理流程时都要先校验其「验证码」的正确与否,才能判断流程是否向下执行,在部分敏感的场景中,还会限制验证码的错误次数,防止出现账户安全问题;

3.2 短信触达

无论是「通知提醒」还是「营销推广」,其本质上是追求信息的最终触达即可,大部分短信运营商都可以提供这种能力,只是系统内部的处理方式有很大差异;

 

图片

 

在部分业务流程中,需要向用户投递短信消息,在营销推广的需求中,更多的是批量发送短信,部分需求其内部逻辑上,还可能存在一个转化率统计的问题,需要监控相关短信的交互状态;

四、模型设计

由于短信是集成在消息中心的服务中,其相关的数据结构模型都是复用消息管理的,具体细节描述,参考《消息中心》的内容即可,此处不赘述;

 

图片

 

从技术角度来看的话,涉及经典的生产消费模型,第三方平台对接,任务和状态机管理等,消息中心作为分布式架构的基础服务,在设计上还要考虑一定的复用性。

五、参考源码

编程文档: https://gitee.com/cicadasmile/butte-java-note

应用仓库: https://gitee.com/cicadasmile/butte-flyer-parent



Tags:短信   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
银行卡别再开通短信通知了,多数人没放心上,幸好内部人员提醒!
在现代社会,银行卡已经成为我们日常生活中不可或缺的支付工具。为了方便掌握账户动态,许多人会选择开通银行卡的短信通知服务。然而,这一看似贴心的服务,实际上却隐藏着不少隐患...【详细内容】
2024-03-26  Search: 短信  点击:(15)  评论:(0)  加入收藏
SpaceX首次使用星链卫星发送短信,计划今年推出直连手机服务
SpaceX周三宣布,利用T-Mobile的网络,该公司成功地通过星链(Starlink)卫星发送了短信,计划未来一年内将其手机直连卫星服务推向市场。在上个月获得美国联邦通信委员会(FCC)的授权测...【详细内容】
2024-01-11  Search: 短信  点击:(51)  评论:(0)  加入收藏
iPhone遭史上最复杂攻击!一条iMessage短信就能入侵 窃走隐私
快科技12月29日消息,今年6月份卡巴斯基发布报告称,发现了一个非常复杂、高端的iMessage漏洞,将其命名为“Operation Triangulation”。它可以向iPhone植入恶意程序,收集麦克风录...【详细内容】
2023-12-29  Search: 短信  点击:(139)  评论:(0)  加入收藏
新骗局!“交管12123”发来短信,已有人被骗!
对于开车的小伙伴来说“交管12123”是再熟悉不过的手机APP了有了这款APP各位小伙伴足不出户就可以办理机动车相关的很多业务可以说是一款“神器”ETC经常开车的小伙伴也不会...【详细内容】
2023-10-09  Search: 短信  点击:(301)  评论:(0)  加入收藏
自驾游回来收到“交通违法短信”,小心有诈!
“车主必看,警惕此类信息!”这两天,多地警方、媒体公众号发布文章,提醒中秋国庆长假自驾出行的车主注意“交通违法”诈骗短信。警方在文章中提醒,这类短信“高仿”交警部门的交通...【详细内容】
2023-10-08  Search: 短信  点击:(374)  评论:(0)  加入收藏
电诈的“前菜”!这种短信别点开
 中新网8月21日电(中新财经记者 吴涛)兼职刷单轻松挣钱,谁知竟然落入骗子精心编织的诈骗陷阱……热映电影《孤注一掷》中出现的典型案例正在现实生活中上演,而这...【详细内容】
2023-08-22  Search: 短信  点击:(88)  评论:(0)  加入收藏
大量 iPhone 用户收到涉黄短信,苹果回应
自手机诞生之日起,垃圾骚扰短信就成了所有用户的公敌。尽管这些年随着各种短信拦截手段的升级,以及人们防范意识的增强,骚扰短信也不再像以前那般猖獗。但直到目前为止,骚扰短信...【详细内容】
2023-05-27  Search: 短信  点击:(128)  评论:(0)  加入收藏
聊聊「短信」渠道的设计与实现
从技术角度来看的话,涉及经典的生产消费模型,第三方平台对接,任务和状态机管理等,消息中心作为分布式架构的基础服务,在设计上还要考虑一定的复用性。一、背景简介在常规的分布式...【详细内容】
2023-05-26  Search: 短信  点击:(223)  评论:(0)  加入收藏
发“上门强制枪毙”短信是因为骗子智商不够?警方解读
近日不少网友收到一则“离谱”短信的相关话题冲上热搜只见晒出的短信截图写着:“因您信货诈骗,缺席出庭,已通过“天网”定位具体位置现已通知当地执法部门和司法人员(魏军,王琳,郭...【详细内容】
2023-05-26  Search: 短信  点击:(88)  评论:(0)  加入收藏
苹果手机持续收到涉黄短信?网友反馈不分男女都会收到,警方透露原因
最近,不少网友反映,自己收到一些莫名其妙的信息,内容涉黄或者涉赌。信息说自己是在校大学生要兼职,可以提供色情服务,随后是链接,如果要联系,复制链接去手机浏览器看。从反映收到信...【详细内容】
2023-05-24  Search: 短信  点击:(146)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(6)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(6)  评论:(0)  加入收藏
站内最新
站内热门
站内头条