节庆大促是未来独立电商必修的一门课程。一次成功的电商大促不仅需要优质商品资源和营销创意,还需要高可用、高性能技术架构体系在背后支撑。


整个电商系统在大促时会有以下技术挑战:

1、如何应对阶段或瞬间高并发访问量。

2、服务器计算资源,网络带宽资源的合理利用问题。

挑战应对不及时的结果:

1、服务不可用

2、访问速度慢

3、数据不一致

4、整个系统崩溃


我们来看看国内几个知名独立电商平台的峰值系统设计。


京东

京东业务繁多,系统庞大且复杂,所以京东在做任何优化设计时,首要保证各个业务节点的稳定性,京东对技术团队的考验已经不仅仅停留在整个系统可用性,而是每个业务API接口级的高可用。因此京东的峰值系统性能提升主要着重以下几个方面:


1、业务模块解耦


系统的模块化相对独立解耦运行,是峰值系统中高并发高性能优化的基础,京东先将整个业务体系拆分成了几个相对独立的子系统,如:SSO、交易平台、POP、订单传递系统、WMS、TMS。每个子系统又可细分为若干部分,逐级优化。例如,交易平台包括价格、购物车、结算、支付和订单中心等;网站系统包括首页、登录、列表频道、单品和搜索等。接下来,针对每个功能模块的关键部分进行切分,有针对性地做性能优化。


2、分布式云计算集群


分布式、云计算集群 在建设之初就预留有相当的流量承载能力和空间,当一处计算资源饱和时,可以将其余的流量瞬间切入其他相对宽松的计算节点,并且各个计算节点相互交叉备份。同时为顾客提供就近服务原则,减少访问网络延迟。


3、底层服务集中API化


集中管理这些组件并对外提供接口服务,将软件的使用复杂性隐藏起来,调用的是简单利索的API。让专业人员去处理复杂逻辑,确保系统的可用性和扩展性,既能大大降低出错概率,又能实现规模效益。


4、虚拟弹性化

ZooKeeper软件栈有机串联、Docker自动化弹性扩容。



小米

小米的峰值系统已经升级到最新的“大秒”,与其他电商平台不同的是,除了峰值,还强调限流,原因是抢购人数与实际可抢商品之间的巨大数字差距。


大秒系统的架构设计如下:


包含:

1. 限流集群HTTP服务

用于按照规则识别出恶意客户以及队列满的时候,丢弃部分流量,以保障正常客户的购买需求。


2. 放号策略集群Middle服务

用于根据商品放号策略集中判断购买者资格。


3. 监控数据中心Dcacenter

用于采集业务以及系统数据,以供监控体系使用。


4. 监控管理体系Master

整个抢购系统由 Master 体系中各个服务做统一的控制的,Master 控制商品状态及配置数据的变更,控制当前活动的状态,控制商品放号的策略等。


5. 准实时防刷模块antiblack

基于日志流的防刷架构,在每台 HTTP 节点上部署日志收集 Agent,使用高吞吐量的 Kafka 做日志转储队列,antiblack 模块实时分析用户请求日志,基于 IP 粒度、Uid 粒度等做防刷。


6. 基础存储于日志队列服务Redis集群、Kafka集群等


大秒抢购系统的几点设计原则:

1. 分治是解决复杂问题的通则;小米从第一代抢购系统演进到当前的大秒系统,衍生出了很多服务,每个服务的产生都是为了专门解决一个问题,分离整个复杂系统,针对每个服务需要解决的问题,各个击破,重点优化。由此,才保障了秒杀体系整体性能、可靠性的提升;


2. 服务化设计;系统解耦,增强系统的伸缩性与可靠性;


3. 无状态设计,增强系统的伸缩性,提升集群整体处理能力;


4. 状态数据局部化,相对于数据中心化,提升集群整体处理能力;


5. 中心化监控管理,热备部署,既保证了服务的高可用性,又能够提升开发和管理效率。随着集群规模的增大以及管理数据的增多,分离管理信息到不同的数据管理节点,实现管理能力的扩容。通常情况下,中小型分布式系统,单机管理能力即可满足;


6. 避免过度设计,过早的优化;小步快跑,频繁迭代;


7. 没有华丽的技术,把细小的点做好,不回避问题,特别是在高并发系统中,一个细小的问题,都可以引发整个服务雪崩。

当当

作为一个典型的自营与开放平台相结合的网上零售电子商务平台,当当网网上购物流程由多达上百个大小系统共同实现。当当网最终服务于消费者,良好的用户体验、钱物准确是立足的根本,因此对系统稳定性、可靠性、准确性有非常严格的要求。

电商系统的运行峰值通常出现在各类促销、营销活动期间,以及大量集中收订的订单带来很大的生产和配送压力时。


当当的峰值系统设计策略有如下几点:

1.基于SOA架构理念,降低系统耦合性,接口定义清晰明确,保证独立子系统的健壮性高,降低故障跨系统扩散风险,从而将伸缩性的困难逐步分解到各个系统;


2.对系统进行分级,集中力量,突出重点系统。当当网从卖场到交易流程均属于一级系统,这部分系统直接关乎用户体验和订单量。在系统稳定性和可靠性等指标上,设计标准高于后台系统;


3. 优先考虑用异步处理代替同步处理,做好系统异常的降级方案,保证有限的合格服务。




纵观上述各家电商峰值系统的架构设计,由于规模、模式以及技术选型都不一样,所以方案呈现了多种多样的态势,很全面的展现了互联网技术的开发和创新特征。虽然表现各异,但是其核心思想基本一致,主要关注如下五个方面:


1、业务系统解耦

2、集中服务化、API化

3、缓存技术的应用

4、数据库的查询性能优化、事务处理性能优化

5、虚拟化、容器化 弹性扩容技术的应用



这五个方面,是高可用高性能峰值系统成功架构的关键,是大型电商系统设计过程无法规避的话题。

未来商务VMCSHOP在企业业务发展不同阶段提供了不同的解决方案,满足高可用及高性能。如:SOA组件化应用程序架构、数据库读写分离架构、Redis和memcache 内存级高速缓存系统的使用、Docker 新一代容器化技术的应用。真正把大型电商系统架构最佳实践带给企业。