首页 » 软件开发 » 如何设计一套好用的自适应流控方案?(短信自适应入场观众通道)

如何设计一套好用的自适应流控方案?(短信自适应入场观众通道)

admin 2024-07-24 03:37:10 0

扫一扫用手机浏览

文章目录 [+]

什么是自适应流控?

流控,是流量控制的简称。
在不同的领域有不同的含义,如航空流量控制,网络流量控制等。

自适应,就是在处理和分析过程中,根据处理数据的数据特征自动调整处理方法、处理顺序、处理参数、边界条件或约束条件,使其与所处理数据的统计分布特征、结构特征相适应,以取得最佳的处理效果的过程。

如何设计一套好用的自适应流控方案?(短信自适应入场观众通道) 软件开发
(图片来自网络侵删)

简言之,自适应流控是指根据当前流量对象的数据特征及预定义的规则,自动调整方法、顺序、参数或条件,以期与预定义目标相适应的过程。

根据上述定义,你是否对自适应流控的概念有了基本的认识呢?Don’t worry,我们将在下文,用案例的方式帮助你理解。
So, Take It Easy!

为什么要自适应流控?1. 引言

在互联网领域,我们常听说的诸如:“主站用户流量太大,需做子页面分流设计”、“大促请求洪峰将至,需提前做好限流措施”、“数据库请求量太大,需将查询请求切流至从库”等等,都是在讨论流控问题,只不过关注的视角和对象不同而已。

产品、运营可能更多的是关注用户流量;研发可能更关心的是服务请求流量;DBA(数据库管理员)在意的可能是数据库请求量。

职责不同,则视角不同;视角不同,则关注对象不同。

可见,流量控制在互联网领域应用十分广泛且广受关注。

2. 流控的必要性

然而,为什么要进行流量控制呢?我们设想一个典型的流控场景:

假如周杰伦即将在鸟巢开个人演唱会,据官方大数据预测:预计将有10万观众入座,届时会场将座无虚席。
而你有幸担任本次演唱会的安保工作,负责保障观众及时有序地入场和出场。

挑战:假如有以下三种方案,你将采取哪种方案,以保障观众及时有序地入场和出场呢?

方案一:设置一个会场入口,观众可凭入场券由此入场。
方案二:设置一个会场入口,在入场电子指示牌(或入场券上)上标明入场券编号及对应的入场时段,各个手持入场券的观众按入场券编号及对应的时段有序入场。
方案三:设置多个会场入口,在入场电子指示牌(或入场券上)上标明入场券编号及对应的入场口编号(如A口、B口、C口、D口等),各个手持入场券的观众按入场券编号及对应的入场口有序入场。

方案一,没有进行任何流控的干预

优势是节省安保及秩序维护的人力或设施成本,劣势尤为突出:

观众排队严重,甚至因为排队时间长而错过入场,用户体验极差;极易造成拥堵,甚至踩踏事件,造成安全事故。

方案二,主要按时间顺序(类似“错峰出行”),对观众进行流控

优势是节省安保及秩序维护的人力或设施成本,劣势也显而易见:

观众排队现象有所减轻,但观众入场时间被严格限制,时间不自由;对于未按时间进场的观众而言,要么错失进场机会要么无奈等待,抵触情绪上升;

总结一句话:用户体验差。

方案三,主要按空间分布,对观众进行流控

虽然需要更多的安保及秩序维护的人力或设施,但优势也非常明显:

轻微拥堵,观众可根据自己的时间安排灵活快速出入场,用户体验佳;不易产生踩踏等安全事故。

另外,方案三的优势还体现在当演唱会结束时,可以快速完成观众的有序出场。

根据各方案的比较后,我相信聪慧过人的你一定会选择方案三。
这也是现实场景中被主流选择的流控方案。

3. 流控的适用场景

结合上述“演唱会”的场景,我们总结下:在什么场景下需要进行流量控制呢?

一般而言,流量控制被用于具有如下特征的场景:

在短时间内汇聚了巨大的流量;汇聚流量的各个个体需得到妥善处理。

线上的典型场景,包括秒杀,抢购,限时大促等,如天猫京东双11大促、唯品会定时秒杀等,需尽量保障每个用户都能正常访问网站或APP,而不是简单粗暴地拦截或拒绝访问。

线下的典型场景,包括重大会议(运动会、演唱会、展销会等)出入场等,每个有入场券的观众,都有被合理安排入场和出场的权利,不能随意拒绝观众入场或出场。

4. 关于自适应的理解

如何理解自适应流量控制呢?

回到“演唱会”例子中的方案三,我们是否有欠考虑的地方呢?想象一下如下特殊场景:

对于某些特殊群体如VIP、孕妇、行动不便等,一般会提供特殊通道,保障其优先出入场;对于入口而言,若出现故障,则需启用备用出入口,以保障观众有序出入场。

以上场景是否似曾相识?这就是我们所说的“自适应”,即:能够根据特殊观众个体或入口故障等数据特征,自动调整走特殊通道或启用备用通道的处理方法,以匹配完成观众有序快速出入场相适应的目标。

总体而言,“自适应”主要用于:需要根据待处理对象的数据特征,或根据待处理对象所处环境的变化,而匹配相适应的处理方式、条件、规则等的应用场景。

物竞天择,适者生存。
世界上唯一不变的就是变化本身。

由此可见,拥抱和适应变化就显得格外重要,“自适应”的重要性也就不言而喻了。

有自适应流控的典型实践吗?

现在,举一个互联网电商领域短信自适应流控的案例。

一年一度的双11大促期间,消费者们购物的激情,被大促节日和网购所烘托的氛围所点燃和释放,特别是在双11当天,亿级的消费者几乎在同一时段内抢购自己心仪的商品。

与此同时,各类短信也在此期间竞相迸发,如登录验证、支付验证、预售提醒、活动推广等,这些短信将在短时间内产生巨大的流量洪峰。
如何使这些短信及时可靠下发,成为了是否能保障双11顺利进行的关键。

1. 短信下发原理

为了便于理解,在介绍短信自适应流控之前,先简要介绍短信下发的原理:

如上图所示,短信下发的原理,可按以下步骤进行简要概述:

由各业务源头生成短信内容,如注册登录、预约预售、活动推广等;由短信网关按短信类型,将短信内容放入不同的待发送队列;由短信网关经过分发层,投递至短信通道商;由通道商转发至运营商,并最终下发至用户手机终端。

2. 自适应流控的设计思路

关于短信的自适应流控,设计思路体现如下:

(1)划分短信类别,定义优先级

将短信按行业规则划分为验证码、通知短信、推广短信。

验证码,具有验证用户身份或确认用户操作的作用,包括但不限于APP/网站注册、安全登陆、支付认证、身份认证、密码找回、账号绑定等应用场景。
通知短信,用户在使用或订阅了企业相关服务后,为使服务履约闭环而由企业程序触发的通知,包括但不限于提货通知、订单通知、支付通知、物流通知、生活服务类通知等应用场景。
推广短信,为了推广和宣介产品或服务等,由企业主动触发的短信,包括但不限于用户调研、抽奖邀请、新品试用、新品宣传、会员关怀、商品促销、活动邀请等应用场景。

通过上述对各类型的短信介绍,我们可以判别:

通常来说,用户对验证码短信的时效性要求最为苛刻,需要秒级到达;其次是通知短信;最后才是推广短信。

因此,我们将优先级的顺序定义为:验证码>通知短信>推广短信。
优先保障验证码的及时下发,其次保障通知短信的下发,最后保障推广短信的下发。

(2)多通道商备份,制定自适应切换规则。

一般而言,作为备份,会采购多个通道商的短信通道,以确保某个通道商出现故障时的快速切换,最终保障短信的可靠下发。
在通道发生故障时,如何快速切换以保障短信及时下发呢?

我们首先想到的是:人工值守和人工切换的方式。
当然,这是一种可行的解决方案,但存在切换不及时、非工作时段无法及时响应(特别是在夜间)等诸多弊端。

所以,需要找到更优的解决方案,通过评估分析,我们最后采用了自动化的方式来做通道故障时的快速切换,原理可简要描述如下:

注:对于不可用通道,我们采用了“尝试发送”机制进行探活检测,如果检测到某故障通道经过修复后达到可用标准,则将其从不可用通道队列放入可用通道队列。

3. 度量指标

为了度量该设计方案是否有效,我们定义了2个关键的指标:

下发延时,下发延时=短信下发至通道商的时间点-收到短信下发请求的时间点;切换耗时,切换耗时=通道切换时间点-通道不可用的识别时间点。

从线上运营数据来看,以上两个指标的实测数据皆达到项目预期的目标。

总结

本文简要讲述了自适应流控的相关背景、概念、价值及典型实践,旨在帮助大家建立起对自适应流控的适用场景及必要性等基本认识,其中的自适应短信流控案例来自互联网厂商,具备一定的借鉴意义,仅供大家参考和探讨。

另,受限于作者写作水平及保密要求等相关原因,有陈述不尽之处,敬请谅解。

本文由 @南瓜哥 原创发布于人人都是产品经理。
未经许可,禁止转载

题图来自Unsplash,基于CC0协议

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0