支付系统的洪峰应对之法

导语: 随着科技和社会的进步,移动支付已经成为大众支付的第一选择,支付越来越便捷,公司在近几年也突飞猛进,随之诞生了一下巨型业务,加上各种节日,活动日的造势,支付量常常有10倍,20倍于日常量的突发支付量。在这个过程中,我们总结了一些经验。

1. 整体设计

1. 1 限流

整个支付流程下来,需要经历很多环节,如:加载商店页、加载订单页、下单、支付、发货等,其中如果涉及到活动的话,可能还有各种资格查询等。整个交易流程比较长,其中任何一个环节失败,都可能导致交易失败,最终所有已经完成的操作都浪费掉了。当洪峰流量来临时,各阶段均可能因超载而导致整个交易失败;更甚者,如果这种状况得不到有效的控制,用户反复重试,还会对系统造成进一步的伤害(风暴)。最终,大部分的人都不能交易成功。

通过扩容,是可以解决这里的问题的,但是任何方案都需要考虑成本因素。解决问题的阶段越早,成本越低。因此,在不大规模扩容的情况下,我们采用“及早拒绝”来解决一大部分问题。

及早拒绝:

为了避免进一步的伤害(风暴)导致整个支付系统瘫痪,我们采用了“入口竞争”的措施,海量用户通过竞争有限的机会,进入后续的支付环节,没有取得机会的用户被及时拒绝,保障已经取得机会的用户尽可能的完成整个支付流程。

友好反馈、频率控制:

对于没有获得机会的用户,我们会在1秒之内就给出拒绝的结果,并给出建议性的提示,将用户的页面冻结10秒,配上解冻倒计时,解冻后才能再次发起“竞争”购买的动作。

通过这些操作,用户可以迅速拿到结果,不用不知所措的傻等转菊花;并对自己的等待有一个预期,比如刷了几次都没有打开的话,用户可能会稍后再来,不用一直等。通过竞争和倒计时,也会增加以下用户抢购的紧迫感。

1.2 排队

在支付环节,用户已经通过竞争,进入了支付流程,后续的就需要尽力帮用户完成整个流程。我们引入了预下单的机制,让用户通过预下单进行排队,并引入一个查单cgi,用户可以通过查单cgi查询自己的排队进度。排队完成后,自动拉起支付密码输入框。以排队的体验代替竞争的体验,使用户有一个更好的预期,减少中途放弃的概率。

在发货环节,用户已经支付完成,待发放的物品,也通过排队进行发放,避免对后端发货系统的一个冲击。

1.3 有损服务

支付流程中,有涉及到用户体验的,如支付成功通知tips,各种提醒等体验性的流程。在洪峰情况下,可以选择性的关闭,保证支付系统核心功能的正常运转。

1.4 分离原则

主要涉及:业务分离、渠道分离、部署分离、快慢分离、用户分离等。尽可能的保证业务之间、渠道之间、不同的系统之间、用户之间的相关影响最小化。快慢系统分离,尽可能保证整体系统的高效运转。

2. 单系统设计

2.1 容量预估与资源监控

每个系统通过压测和现网演练,可以评估出一个容量,并针对cpu、内存、磁盘IO、网络IO等指标进行实时监控,并在负载告急之前能给出告警。

2.2 尽力而为

第一点的限流实际是整个支付系统的过载保护的一部分,这里再提一下单系统的过载保护。首先所有的系统,都具备保护自己的能力;同时所有的系统,也需具备一定的保护后端系统的能力。系统容量需要一定余量,并在70%左右的容量时进行预警,以提醒运维提前进行准备,在90%时,系统能够自己进行过载保护,确保系统不会被冲垮。

2.3 动态调节

基于监控,实现动态扩缩容,调节单个系统的容量。(目前还没完全自动化)

通过以上的设计计平在面对洪峰的情况下,顺利扛下了不断增长的业务需求。并在一次次实践检验后,我们会不断的完善和细化这方面的实践。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

余威的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数字资产

区块链资产交易平台app开发的种类

区块链资产交易平台app开发是当下最为突出的一个模块,因为手机的越来越智能化,导致手机端的用户群体也在不断地上涨,而且现在的app开发技术进步许多,很多功能pc...

1213
来自专栏云加头条

腾讯云首发智能网关流控,公有云进入网络精细管控时代

腾讯云私有网络率先在业界推出了智能网关流控,为NAT网关、专线网关、对等连接提供IP-网关粒度的“监”与“控”。其精细化网关流量可视化能力,可让运维人员对网关流...

1930
来自专栏区块链

天御防刷解决方案

1842
来自专栏Python中文社区

【腾讯云技术沙龙预告】云端数据库的设计之美

以数据为中心的信息化社会,数据库可以看做是所有应用程序成功运行的核心。而结合云计算,数据库的高可用性能够被放大到极致,可以实现按需付费、按需扩展、高可用性以及存...

1394
来自专栏程丽萍的专栏

搜狗为何选择腾讯云 CDN ?

作为仅次于百度的第二大中文搜索引擎的“搜狗”,面临原服务提供商提供加速时延较高,命中率较低,且长期无法提升相关指数,影响现网业务体验及未来业务拓展的困境。腾讯云...

4450
来自专栏全栈数据化营销

用python实现微信群群友信息采集

刚刚认识了一个关于微信的python库,觉着挺新鲜的,包括实现微信的全部操作,于是就立马试了试。下面是对简书优秀作者群做了群成员的区域信息采集:

1854
来自专栏hadoop学习笔记

hadoop框架结构的说明介绍

近年,随着互联网的发展特别是移动互联网的发展,数据的增长呈现出一种爆炸式的成长势头。单是谷歌的爬虫程序每天下载的网页超过1亿个(2000年数据,)数据的爆炸式增...

780
来自专栏SDNLAB

公有云使用上升,私有云使用下降

根据Interop ITX和InformationWeek的调查报告,公有云的使用率从2012年的30%几乎翻了一番,达到了57%,而私有云的使用率已经从52%...

2647
来自专栏数据和云

揭秘:贵州交警“六合一”系统,零故障运行500天的背后

如今贵州地区,市民只需打开手机APP,就能够快速便捷地享受到诸如路况查询、违章处理、罚款缴纳等一系列自助式服务,免去了往来于家与交警队之间的奔波之苦。在其背后,...

3768
来自专栏QQ会员技术团队的专栏

QQ会员活动运营平台架构设计实践

QQ会员活动运营平台(AMS),是QQ会员增值运营业务的重要载体之一,承担海量活动运营的Web系统。在过去四年的时间里,AMS日请求量从200-500万的阶段,...

6577

扫码关注云+社区