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

来源:互联网 发布:梦洁床垫怎么样知乎 编辑:程序博客网 时间:2024/05/06 13:32
个人观察

1.3个基本要求,低时延,高可用,已扩展
2.针对前端、后端、网络传输分别优化
3.SOA架构,面向服务架构,系统解耦,用异步代替同步

本文转载于

《程序员》2014年11月刊:电商峰值系统架构设计

原文链接:http://www.csdn.net/article/2014-11-04/2822459

核心思路集中表现为:采用分而治之的思想,大系统小做,小系统大做。
浓缩一下就是三个字:快、稳、炫。

电商峰值系统要满足三面的要求
1.低时延,系统对数据的处理速度要快;
2.高可用性,故障可及时恢复,对业务影响降到最小;
3.易扩展性,可动态添加新的计算节点,不影响在线业务,甚至可以自动做出优化调整。

快——快的目标是确保用户端快速流畅的体验。

对前端页面的处理

  • 将有效期较长的静态页面通过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),推送引人入胜的营销。

0 0
原创粉丝点击