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

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

时间: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:短信   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除。
▌相关推荐
从技术角度来看的话,涉及经典的生产消费模型,第三方平台对接,任务和状态机管理等,消息中心作为分布式架构的基础服务,在设计上还要考虑一定的复用性。一、背景简介在常规的分布式...【详细内容】
2023-05-26  Tags: 短信  点击:(0)  评论:(0)  加入收藏
近日不少网友收到一则“离谱”短信的相关话题冲上热搜只见晒出的短信截图写着:“因您信货诈骗,缺席出庭,已通过“天网”定位具体位置现已通知当地执法部门和司法人员(魏军,王琳,郭...【详细内容】
2023-05-26  Tags: 短信  点击:(4)  评论:(0)  加入收藏
最近,不少网友反映,自己收到一些莫名其妙的信息,内容涉黄或者涉赌。信息说自己是在校大学生要兼职,可以提供色情服务,随后是链接,如果要联系,复制链接去手机浏览器看。从反映收到信...【详细内容】
2023-05-24  Tags: 短信  点击:(9)  评论:(0)  加入收藏
手机号码用久了,难免会收到各种骚扰电话和垃圾短信。最可气的是,在你忙得不可开交时,可能还要被迫接通几个骚扰电话,防不胜防!其实,部分品牌手机自带防骚扰功能,而且一些app也提供...【详细内容】
2023-05-08  Tags: 短信  点击:(36)  评论:(0)  加入收藏
违章是最令车主头疼的一件事情,为了不违章也为了不给交警添麻烦,大多数车主在开车的时候十分规矩,不敢去触碰交通规则,也不敢心存侥幸。但是也有一部分车主就没有那么幸运,一个走...【详细内容】
2023-02-06  Tags: 短信  点击:(97)  评论:(0)  加入收藏
IT之家 12 月 2 日消息,据腾讯客服消息,因运营商与腾讯公司业务合作调整的整体安排,所有合作的短信业务(即通过发送短信指令开通的腾讯业务)预计在 11 月份关闭下线业务。用户此...【详细内容】
2022-12-02  Tags: 短信  点击:(596)  评论:(0)  加入收藏
短信想必大家都并不陌生,甚至可以说耳熟能详,有学者闲来无事根据统计得出我们每日都会收到三条到十条的短信,短信内容不一,有验证信息,也有支付记录。那你知道如何从短信跳转至微...【详细内容】
2022-11-10  Tags: 短信  点击:(389)  评论:(0)  加入收藏
导言:电子化的时代充分展现了电子科技进步带来的好处,不仅方便人们进行信息检索和交流,还大大提高工作和生活效率,但同时,也引发越来越多的新形式纠纷、违法行为甚至是犯罪活动。...【详细内容】
2022-11-04  Tags: 短信  点击:(233)  评论:(0)  加入收藏
中国青年报客户端北京11月4日电(中青报·中青网记者 叶雨婷)今天,国务院新闻办发布《新时代的中国北斗》白皮书。中国卫星导航系统管理办公室主任、北斗卫星导航系统新闻...【详细内容】
2022-11-04  Tags: 短信  点击:(340)  评论:(0)  加入收藏
本文转自【央视网】;近日,有广州市民收到短信,说社保卡功能已失效,要在指定日期前点入某网址签署,否则将消除账户。警方表示,不法分子正是利用“医保停用”、“不验证自动作废”、...【详细内容】
2022-10-11  Tags: 短信  点击:(170)  评论:(0)  加入收藏
▌简易百科推荐
从技术角度来看的话,涉及经典的生产消费模型,第三方平台对接,任务和状态机管理等,消息中心作为分布式架构的基础服务,在设计上还要考虑一定的复用性。一、背景简介在常规的分布式...【详细内容】
2023-05-26    知了一笑  Tags:短信   点击:(0)  评论:(0)  加入收藏
次世代游戏建模是目前游戏开发领域的热门话题之一。它是一种高度复杂的技术,可以让游戏开发者更加精确地呈现出真实的场景和角色。在本文中,我们将深入探讨什么是次世代游戏建...【详细内容】
2023-05-26  建模萝卜丁    Tags:建模   点击:(1)  评论:(0)  加入收藏
各位读者,我们将在本文中介绍如何在 Linux 或 UNIX 系统中入门 Shell 脚本编写。什么是 Shell 呢?Shell(交互界面)是类 UNIX/Linux 操作系统中的一个解释器。它将用户输入的命令...【详细内容】
2023-05-22  Pradeep Kumar   Linux中国  Tags:Shell   点击:(5)  评论:(0)  加入收藏
现如今我们已经全面迈入互联网时代:“新技术代表的新生产力,一定是我们开创未来最好的原动力”。究竟什么样的新技术,才能真正解放IT生产力,加速社会数字化转型,Make The World G...【详细内容】
2023-05-22  移动Labs    Tags:低代码   点击:(5)  评论:(0)  加入收藏
对于前端来说,网络请求主要就是用 ajax 的方式去处理。所以本文也会站在前端角度简单讲解 Node 中如何使用 http 模块。前后端对接时,现在常用的请求方法有 GET、POST、PUT、P...【详细内容】
2023-05-22  德育处主任pro  今日头条  Tags:node http   点击:(7)  评论:(0)  加入收藏
前言大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心。chatGPT 回复效果相信使用过 chatGPT 的朋友,都会看到,当你提问一个问题时,cha...【详细内容】
2023-05-22  林三心不学挖掘机  微信公众号  Tags:ChatGPT   点击:(4)  评论:(0)  加入收藏
什么是嵌入嵌入(embeddings)捕捉文本、图像、视频或其他信息类型的“相关性”。这种相关性最常用于以下方面: 搜索:搜索词与文本主体的相似程度有多高? 推荐:两个产品有多相似? 分...【详细内容】
2023-05-22    闪念基因  Tags:Embeddings   点击:(23)  评论:(0)  加入收藏
作为开发人员,我们始终致力于更聪明地工作,而不是更努力地工作。我们希望提高效率、简化流程并快速交付一流的项目。为了实现这些目标,我们需要正确的工具、资源和技术。在本文...【详细内容】
2023-05-22  科技狠活与软件技术  今日头条  Tags:   点击:(7)  评论:(0)  加入收藏
了解云原生 JuiceFS 如何赋能量化对冲基金以增强 AI 训练并在云端实现弹性吞吐。这不是编程或 ChatGPT API 集成教程,这些是使用 ChatGPT API 时需要牢记的一些关键思想和要...【详细内容】
2023-05-21  科技狠活与软件技术  今日头条  Tags:ChatGPT API   点击:(6)  评论:(0)  加入收藏
阿里巴巴是中国最著名的互联网企业之一,其成功的背后离不开高质量的代码。然而,随着近年来大量公司源代码泄露事件的发生,安全问题也逐渐成为了程序员们关注的焦点。本文将从阿...【详细内容】
2023-05-19  月亮供电不足    Tags:关键词   点击:(18)  评论:(0)  加入收藏
站内最新
站内热门
站内头条