应对“双十一”高并发之道

“双十一”带来的压力

不知道从何而起,1111这个数字成为了我们国人心中的一个节日“购物节”,商家在这一天开开心心的打折,男男女女则在这一天快快乐乐的购物。这种全民集体狂欢式的购物对金融行业是一个巨大的挑战,短时间的高并发会带来对数据接口的巨大压力。

根据公开的数据,2015年天猫的峰值交易量已经达到了14万次/秒,而这数字在2009年仅为400次/秒。

每一笔交易背后都包含了很多操作,首先,用户需要浏览很多商品才能真正触发一次购物行为,再次,在实际交易前,需要确保库存、配送、商家优惠政策等信息,生成订单后,要执行支付接口,这是要求高度一致性和可靠性的行为,支付完成后还需要回调多个逻辑,包括积分计算、折扣返点、物流配送等。

可见对于10万/秒这个级别的交易峰值,不仅对于金融机构是个巨大的挑战,就是对以应对大并发有经验的互联网公司,都是一件不容易的事。更为紧迫的是,随着全民IOT设备的进一步普及,双十一带来的压力会越来越大,目前已经有电商平台进行了预测,今年2016的“双十一”的峰值压力会在翻5倍。在可预见的将来,完全有可能达到100万/秒交易!

应对之道

本人有幸参与过10万/秒交易量的系统,在这里也对应对“双十一”的超高并发峰值提出一些小的经验。其实,无论是“秒杀”还是“双十一”,都没有灵丹妙药,也没有说购买一个什么硬件或者运行个什么软件就可以完全解决的,一个真正能抗超高并发的金融系统,必然是由系统中每个组件的优化而成的,让每个组件都发挥出最大的威力,同时降低各个组件间的依赖和耦合,这样最终才有可能做出可靠的平台。

在应对“双十一”中,最重要的就是两个技术“缓存-cache”和“异步化-队列”。

缓存-cache

在大型系统中,cache是最常见的组件,也是降低数据库负载的最重要环节。但我们这里所讲的cache不是传统意义上的redis/memcache等系统cache组件,而是从用户端到最后数据层的所有环节的cache。也就是说,对于高并发的场景,应对的第一条准则就是为用户行为的所有环节都加上合理的cache。

业务层次

如图所示,用户访问/交易行为的起点是浏览器,所以首先要对浏览器端进行合理的cache设置,也就是对其中的页面设置的合理的过期规则,这样配合CDN端,就可以有效降低业务的访问压力,让部分元素响应直接在浏览器cache端返回。其次,虚线内展示的是业务端,业务端主要有两个组成,一个是计算资源,也就是虚拟机或者物理机,上面运行业务代码,另一个就是数据库,如MySQL/Oracle,上面存储着业务数据。

业务层输出的内容无非分成两部分内容:动态内容+静态内容。目前对于金融业务来说,有的已经使用了CDN加速,还有的没有使用,这个依赖不同的场景,对于动态居多的电商金融业务,其实对于静态内容为主的CDN加速确实没有什么特别的效果,而反而应该对数据接口进行接口加速(ADN,API Delivery Network),而接口加速需要注意的是,不要因为给接口加cache而影响了业务本身。我们的建议是可以对有所有的读类型数据接口加cache,同时cache时间设定为毫秒级,并且针对不同的接口指定不同的cache策略,这样可以有效的提高cache命中率。

根据我们实测,通过给接口加上ADN cache,可以有效提高60%的访问速度,同时降低2-3后端实际负载。

异步化-队列

应对“双十一”的另一个技术点就是异步化-队列,其实就是通过队列将一个请求/事务放入后台运行,从原来的同步阻塞模式变成异步非阻塞模式。比如,当发生抢购时,很多用户同时调用支付接口,如果不进行队列异步化,用户的数量就是支付接口的并发度,当用户过多时,就会导致支付数据库压力过大,严重可能会导致数据库服务宕机。而采用异步模式后,抢购时,用户请求进入队列处理,队列的并发度和数据库的并发能力相匹配,这样再多的用户请求也会按序进行,这样有效的保护了数据后端。

队列的用处还不只保护后端数据库的场景,在秒杀场景时,很多用户抢购一个商品,可以先将抢购请求放入队列,然后进入后台筛选处理(比如排重、按优先级排序),然后再调用实际的下单接口。进入队列后的表现,还可以产品需求有不同的模式,常见的分成两种:一种是全异步模式,即进入队列后立即返回成功,通过回调来通知调用者后面的结果;另一种是半异步方式,即进入队列后,调用者挂起,等实际执行结束后,再返回成功或者失败结果。

总结

总之,应对“双十一”大并发流量的办法,主要是缓存+队列异步化,而缓存的重点是每个环节都要做合理的cache,尤其是对于传统会被忽略的数据接口,也应该做cache。另外对于,进入的大并发请求,要进行异步化非阻塞处理,这样可以防止瞬间的“洪水”现象,最终保证业务稳定有序进行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容