订阅程序员杂志RSS CSDN首页> 程序员杂志

快稳炫:电商峰值系统架构三字诀

发表于2014-11-03 16:33| 次阅读| 来源《程序员》| 0 条评论| 作者盛国军

摘要:随着电商促销规模越来越大,竞争点已不仅是价格,而延生到背后的技术:如何设计峰值系统来应对爆发流量,如何实时发现有效信息转化为商机,成为关键点。本文结合快稳炫三字诀,讲述电商峰值系统架构设计的最佳实践。

2009年11月11日,淘宝商城“光棍节”开启了网购促销全新规模的序幕,随后各大电商的促销浪潮此起彼伏且规模越来越大。在用户畅享购物狂欢的背后,电商系统承受着严峻的考验。电商大战已不仅是价格之争,更是后台和技术的较量。大型促销活动带来的是流量暴涨,在高访问量的冲击下,电商系统会受到以下挑战:瞬间访问量可能是平时的几十倍;网络带宽被占满,用户响应很慢;机器负载高甚至宕机;数据库压力过大导致服务不可用。

时间就是金钱,效率就是生命。如何设计电商峰值系统来更好地满足用户蜂拥而至的访问,如何在海量数据处理中实时发现有效信息并转化为商机,成为众多电商架构师都在认真思考的问题。针对峰值现象,各家电商陆续推出了自己的解决方案。设计良好的系统架构犹如电商平台的发动引擎,需要拥有非凡的动力系统以满足极致的用户体验和强劲的峰值承载力。

本期《程序员》杂志在基于海尔电商技术沙龙第九期研讨内容的基础上,组织了京东、当当、小米、一号店、海尔商城、唯品会、蘑菇街、麦包包等国内知名电商企业,以及商派、听云等相关服务公司,进行了电商峰值系统架构设计的最佳技术实践专题分享。

纵观上述各家电商峰值系统的架构设计,由于电商规模、商业模式以及技术选型的不同,其技术方案多彩多样、百花齐放,着实令人兴奋,全面展现了互联网技术开放和创新的特征。下面从这些架构设计方案中,抽象和总结出其共性相通的核心思路,进行一些概述。核心思路集中表现为:采用分而治之的思想,大系统小做,小系统大做。浓缩一下就是三个字:快、稳、炫。

快——天下武功,唯快不破

快的目标是确保用户端快速流畅的体验。概括来说,可以通过以下技术手段实现快的目标。

对前端页面的处理

  • 将有效期较长的静态页面通过CDN(Content Delivery Network,内容分发网络)缓存到离用户最近的服务节点上。
  • 将有效期较短或者需要对失效时间做最大限度控制的静态页面,通过类似于Memcache的高速缓存系统或类似于Squid的反向代理系统缓存在服务端。
  • 将混合型页面(如商品单页)进行动静分离,静态数据(如商品介绍等)缓存在本地,动态数据(如可用库存和促销价格等)异步进行加载。

对后端数据的处理

  • 数据库SQL慢查询优化。例如,重构相关索引,对where子句进行优化等。
  • 数据库读写分离。例如,MySQL的Master/Slave结构。
  • 数据库分库分表。这是减轻单个数据库服务器压力的有效手段,不过同时也会带来系统的复杂性,是鱼和熊掌之间的关系。

对网络传输的处理

  • 执行负载均衡,第四层交换按实现分类,分为硬件实现和软件实现。通过硬件实现一般都由专业的硬件厂商作为商业解决方案提供,如F5等,这些产品非常昂贵,但能够提供非常优秀的性能和很灵活的管理能力。通过软件实现,如LVS等,虽然性能比专业硬件稍差,但软件实现配置起来更灵活。

稳——不管风吹浪打,胜似闲庭信步

稳的目标是确保系统端稳定可靠的服务。无论在任何情况下,都要做到尽可能不宕机、不出错。要做到这一点,可以在以下几个方面做文章。

系统解耦

拆分业务模块和功能模块,使得每个模块都做到高度内聚,然后用SOA,通过严格定义模块之间的服务接口,做到模块间的松散耦合。在一个模块发生问题时尽可能不影响其他模块的执行,尤其不能影响关键业务的执行。同时,可以对单个模块进行横向扩展,尤其是对关键的业务模块,以确保关键业务一定不能受影响。需要注意的是,模块划分的粒度应进行权衡,过细的粒度虽然可以带来更多的灵活性,但也会带来编程的复杂性。

有损服务

根据CAP(Consistency一致性,Availability可用性,Partition Tolerance分区容忍性)理论,三者不可得兼。对于电商平台,其中多数应用并不需要很强的一致性,因此合理的方式是用牺牲部分一致性来换取较高的可用性。有损服务(服务降级)就是一种提高系统稳定性和可用性的有效实践。在电商系统中,要优先保证类目浏览、产品单页和订单流程能够执行。

数据库减负

我们知道数据库是所有节点中最不容易扩展的,复杂的SQL查询条件会导致数据库负担过重,此时可用增加应用计算中间服务器的方式,通过高效简洁的SQL查询,应用计算中间服务器一次性地从数据库中取出最小全集的数据行,然后在内存中利用算法剔除冗余数据,以应用算法的复杂度换数据库负担的方式。

炫——运筹于帷幄之中,决胜于千里之外

炫的目标是确保业务端实时高效的调度。从日志收集和实时计算入手,通过对用户行为数据的可视化(图1),及时发现问题和洞察商机,调度应用系统,对用户多样化和个性化的需求进行智能引导。


图1  用户行为数据可视化

审视当下畅想未来,随着云计算的兴起和成熟以及智能移动设备的普及,电子商务与这两者深度结合,必将引起一场激动人心的变革。各种设备上的在线商城将是主流的商业模式,目前分类式的购物体验平台将演变成一个高度集成以用户为中心的全流程价值交互体验云平台。该云平台有四大核心组成部分,环环相扣形成一个闭环(图2)。


图2  全流程价值交互体验云平台

通过云屏(TouchApp),打造流连忘返的体验;通过云网(DataLink),提供随时随地的服务;通过云芯(FansTree),进行细致入微的洞察;通过云播(Broadcast),推送引人入胜的营销。

最后,请你放下手中的所有工作,找个阳光明媚安静的地方,泡杯香浓的咖啡,细细品味本期各大电商为你带来的最佳技术实践

作者盛国军,花名毛尖,海尔电商CTO。有十多年电商从业经历,历任8848系统架构师、麦考林首席架构师、麦包包首席架构师。用技术驱动以用户为中心的全流程价值。

近期活动

更多

微博关注

程序员移动端订阅下载

相关热门文章

热门标签