加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 安全 > 正文

死扛零点前十秒流量,预测屌丝取消订单,为了保卫双十一京东有多拼?

发布时间:2016-11-23 23:29:53 所属栏目:安全 来源:雷锋网
导读:副标题#e# 双十一,剁手党的节日,恨不能是各大电商程序员的忌日。 京东,作为全国买买买炮火的主要目标,架构师、码农们一边承担着全国人民打折购物的殷切期望,一边承受着老板东哥如芒在背的犀利目光。 总之,一旦出现闪失,后果不堪设想。 那么,究竟架
副标题[/!--empirenews.page--]

双十一,剁手党的节日,恨不能是各大电商程序员的忌日。

京东,作为全国买买买炮火的主要目标,架构师、码农们一边承担着全国人民打折购物的殷切期望,一边承受着老板东哥如芒在背的犀利目光。

总之,一旦出现闪失,后果不堪设想。

那么,究竟架构师们如何万无一失地完成这样“不允许失败”的任务呢?

在今天的 SDCC 中国软件开发者大会上,京东商城总架构师、基础平台负责人刘海锋为现场观众介绍了今年保卫京东双十一的“五大法宝”。

死扛零点前十秒流量,预测屌丝取消订单,为了保卫双十一京东有多拼?

【京东商城总架构师、基础平台负责人刘海锋】

好钢留在刀刃上:资源规划

说到底,双十一最大的挑战就是访问和业务激增。如果能够提供无限的带宽和计算资源,那么双十一和其他日期不会有任何可以感知的区别。

然而,资源永远是有限的。这就好像一个人往往不能又买房又买车还天天吃大餐。从这个角度来说,资源规划就变得非常重要。

每当各种电商节来临之前,各路部门都变成了嗷嗷待哺的雏鸟。恨不能张口就要十倍于平时的资源。

不过刘海锋说:

大家都觉得资源充分才不会出问题。但是事实证明,有些部门多准备一些 CPU,心理上可能轻敌,在代码上就放松了警惕,这样未必可以活下;相反资源不那么充足的情况下,反而未必死掉。

那么,有限的 CPU 究竟分给谁呢?

死扛零点前十秒流量,预测屌丝取消订单,为了保卫双十一京东有多拼?

【前端用户下单方法调用双十一峰值达到了平均值的16倍,而机房内网络流量峰值只有平均值的1.5倍】

根据刘海锋的研究,京东商城前端的访问系统在零点之前的十几秒负载达到峰值。几秒内就可以达到平均值的16倍。这是因为大家都已经选好了想要的商品,只等零点之前刷新下单。但是,这样狂飙的访问量在系统内部却没有表现得如此恐怖。在系统内部,访问量可能只有平时的 1.5倍。

我们把各个系统分为两类:平稳型系统和毛刺型系统。

平稳型系统,包括商品的详情页、价格页面、库存信息等等;

毛刺型系统,包括下单、秒杀页面、抢购页面等等。

死扛零点前十秒流量,预测屌丝取消订单,为了保卫双十一京东有多拼?

做了细致的研究之后,对于资源的分配就有了依据。这样就可以在保证核心流程充分扩容的基础上,再来满足锦上添花的功能需求。

“逼”内存做存储:夯实基础架构

基础架构是京东商城的基础。而在巨大访问中一旦基础架构出现了问题,会影响无数附加其上的应用。为了保证这个庞大的基础架构,京东做了一些重点动作。

多数据中心

刘海锋说,一个机房的安全系数永远不够,一旦出问题将会造成不可估量的损失。所以京东采用了多数据中心的策略。

这种冗余策略存在于包括电商在内的很多服务中。是一种通用的手段,当然京东也不例外。

全面容器化

京东从2014年开始,对系统进行 Docker 容器化改造。

通俗来说,“容器化”就是把系统的各项资源进行虚拟化,可以更加自由地分配给各个服务。

这种改造有一个巨大的优势,那就是极大地加快了资源交付和速度,更小地细分了资源的粒度。刘海锋说,2014年之前,大促时各个系统分资源还在分物理机,而现在大家可以直接分 CPU,系统在后台直接把 CPU 的计算能力分配给需要的部门。

“逼”内存做磁盘

在京东的构架中,内存可以被用作存储器,而不是缓存。刘海锋说,这就是所谓的 JIMDB(以内存为中心的存储)。

众所周知,硬盘是在电子化的 IT 架构中,唯一一个还在使用机械结构的元件。它的效率之低令人发指。所以在大促的时候,订单内容和实时护具不会回到后台存储,直接在内存中被调用。这样就大大提缩短了系统响应时间。

为此,京东的内存容量储备达到了 260T。

大促的时候,99%的访问请求最高延迟都小于 5 毫秒。

刘海锋说。

消息平台 JMQ

在京东的体系中,最重要的可能就是订单和运单数据。而这些数据需要在许多系统内部实时同步。

很多下游系统关心订单信息。按照传统的思路,所有下游系统都想要获得订单信息,必须通过订单系统,调用其他的接口才能实现。这样就会给订单系统带来极大的压力。

针对这个矛盾,京东开发了消息平台 JMQ。JMQ 的工作原理很简单,大致相当于信息统筹的秘书。订单系统只需要把数据交给 JMQ,其他系统只需要调用 JMQ 就可以查看信息。这在客观上大大缓解了订单系统的压力。

预测屌丝取消订单:增强智能

双十一,所有系统资源全部被调动起来。人工智能,这个正在井喷的高科技也可以在这个时候“帮工”。

不过,刘海锋告诉小编(),这并不是什么虚头巴脑的大概念,而是一些接地气的小功能。所以他更愿意把它叫做“增强智能”。

增强智能在京东商城的体系内应用场景不少,例如:客服机器人、库存优化、信息合规校验、智能物流仓储等等。刘海锋举了两个有趣的例子。

死扛零点前十秒流量,预测屌丝取消订单,为了保卫双十一京东有多拼?

【替用户冷静的“订单冷静管道”】

订单冷静:屌丝冲动购物的后悔药

如果我看到别人在大促的当天买了一部手机送给女朋友。我一冲动,一次购买了两台,冷静下来想想, 我还没有女朋友。这个时候,我可能会选择退货。

刘海锋说。

然而,京东的很多产品都是自营,在下单之后几分钟内就已经开始分拣打包。然而, 系统订单是在几小时内都支持取消的。

这时,如果用户选择了取消订单,那么打包工作就浪费了。这对于双十一期间资源相对宝贵的京东来说,就是一种资源浪费。

这时,就到了人工智能显示威力的时候。

如果系统探测到下单买两部 iPhone 的用户,经常买奢侈品送给(不同的)女朋友,那么没事。如果探测到这个用户以前购买的最贵的商品就是200块钱的食用油,并且通过大数据分析,这位用户可能没有女朋友。那么就在后台自动把订单“冷静”10-20分钟。如果用户没有后悔取消订单,再继续大宝流程。这有助于减少浪费的成本。

订单预测:从下单到送到只需 12 分钟

在双十一当天,凌晨第一单从下单到出库到用户签收仅仅用了12分31秒。这个看起来有点假的成绩是怎么取得的呢?

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读