传统企业电子商务高峰体系应对实践

ShopSuite电商系统2018-11-11 18:28:12电商资讯

Double 11的场景要求电子商务为独立商城网站的建设进行合理的高峰架构设计,以确保业务的顺利发展。那么能够应对短期流量激增的电子商务系统的瓶颈是什么?在考虑成本因素时,需要解决的技术障碍是什么?

近年来,随着网络b2b2c商城系统3网站交易量在社会消费品零售总额中的比重不断增加,电子商务已成为传统企业不可忽视的销售渠道之一,甚至许多传统企业也纷纷前行 - 视觉开始利用电子商务改造其线下业务的探索开始了。

然而,在实施电子商务项目的过程中,特别是在处理高峰时,由于不熟悉互联网的高峰架构,理解中经常存在一些误解,导致系统上线后不稳定甚至连续停机。它不仅造成经济损失,而且还损害了公司的品牌。

作为一家电子商务技术和服务提供商,该企业已经实施了近千个传统的企业电子商务项目,并获得了大量的经验和教训。下面我们讨论传统企业电子商务高峰系统的设计和维护中的常见问题。

在典型的电子商务系统中,有三个主要核心对象:成员,商品和订单。整个系统主要用于消费者的服务。操作模型以流量和用户为中心。流量主要基于新客户的引入,用户数量代表老客户的贡献。无论是大规模新客户收购还是旧客户营销,都会给系统带来很大压力,特别是限时抢购,秒杀等营销手段尤为明显,这需要我们开展合理的高峰期系统架构设计,确保业务的顺利发展。那么,能够应对业务高峰的电子商务系统的瓶颈是什么,应该解决哪些技术障碍?

大规模查询优化

对成员和商品的大规模查询是常见的情况。例如,在加标系统中,在开放购买时产生大量基于成员和产品的查询请求。通常,请求量通常比通常大10倍甚至100倍,并且还可以访问带宽。相应的增加已大大增加。在我们之前的操作和维护实践中,存在由于带宽估计不足而无法访问的情况。

为了响应类似的大规模查询服务,仅依靠数据库的能力远远不够。因此,我们需要使用大量缓存架构来将峰值访问压力从磁盘转移到内存。通常,产品的主要数据,成员的登录,系统的会话和页面可以由诸如Memcache,Redis和Varnish的KV架构缓存。此外,还可以在特定业务场景中缓存某些动态数据。例如,由于库存数量仅用于控制在下订单之前前台是否可供销售,因此一致性要求不高,只需要最终的一致性,因此内存也可用于缓存在这种情况下。

在商品搜索和基于属性的面包屑导航的情况下,峰值数据库的压力也非常明显。缓存解决方案不适用,因为该服务不具有高命中率的功能。我们通常需要使用搜索引擎来解决。常见的搜索引擎解决方案是Sphinx,Lucene等。前台的应用服务器需要设计为无状态水平可扩展架构,这样前端的负载容量可以通过负载均衡设备线性扩展,只需添加即可。高负载下的应用服务器。

分布式架构设计

完整的电子商务系统分为前端交易系统和后台操作系统。当传统企业设计电子商务项目时,前后图书馆是一种常见的做法。但这种做法在上线后造成了很多麻烦。在前端交易系统处于高峰的情况下,数据库本身已经承受了很大的压力。如果后台操作系统生成大规模查询或写入请求,则很容易导致数据库无法响应。在很多客户案例中,我们发现如果前台和后台合作库,每天订单的正常数量,只要每天的订单数量超过2000,前后通道就会相互干扰变化度,数据库成为主要瓶颈。此时,客户不得不在系统高峰期停止对后台操作系统的操作,这对业务造成了极大的破坏,交付延迟,客户服务水平下降以及不准确的统计数据变得司空见惯。实际上,从架构的角度来看,前台事务系统不同于后台操作系统服务的用户对象。前者是消费者,后者是企业的内部员工,系统可以完全分离。消息队列用于两者之间的异步命令传输。隔离彼此的影响。

当然,对于交易系统,我们还需要根据业务特征设计分布式,以提高业务可扩展性并应对高负载。例如,商品货架系统,会员系统,核心交易系统,资本系统,日志系统等分别由高内聚和低耦合原理分开,以根据不同的访问特性进行优化。

根据分布式体系结构的CAP理论,一致性,可用性和分区容差只能同时满足两个点。对于峰值系统,分布式(分区)设计是不可避免的,可用性也是一个基本要求。因此,我们只能放弃一致性要求,只能达到最终的一致性。然而,在电子商务系统的架构设计中,最容易出现的问题是滥用CAP原则。例如,在交易过程中,后台的供应能力(库存)至关重要。在事务生成过程中,必须保证严格的一致性,而不是最终的一致性。这要求我们以交易方式解决问题。否则,虽然很容易达到在建筑实践中冷静应对高峰期的目的,但不可避免地会出现过度销售和其他伤害的现象。

在分布式系统的设计中,我们必须要求采用面向服务的体系结构(SOA)。

但是你需要注意设计:

首先,在峰值系统中,每个额外字节的传输意味着系统的巨大开销。以每天1000万PV为例。假设这是需要为每个请求调用的服务。字节意味着将添加10MB的流量。

其次,请勿使用您自己的IT最初部署的服务。这是因为企业内的原始SOA服务不是为Internet峰值系统设计的。我们曾经有一位客户使用电子商务网站上内部IT提供的客户验证服务。这似乎是一个简单的查询。结果直接在线,这直接导致服务崩溃,从而导致整个内部IT SOA系统脱机。对内部系统的影响需要几天才能消除,更不用说对在线系统的影响,严重损害了公司的形象。

第三,幂等的原则。假设所有服务调用都不可靠,则重试是常态,因此应对重复的API写操作进行加权。

前端交易系统的数据库结构

对于典型的前端交易系统,数据库的读/写比率非常不同,并且读操作比写操作大得多。除了上面提到的高速缓存和搜索的优化之外,通常使用数据库结构。优化。

以MySQL为例,您可以使用主从读写分离方法进行调整。也就是说,部署主多从属MySQL实例时,应用层写操作仅发生在主实例上,而读操作仅发生在从实例上。此时,通过调整实例数,可以大大减轻数据库的负担。检查压力。

在使用主从读写分离的MySQL体系结构中,通常在高峰时间具有写操作拥塞,这可能是由于系统故障或主从复制延迟造成的。主从复制延迟很难立即在前台找到,只有在用户发现注册或订单问题后才能发现。因此,对于主从读写分离系统,必须监视主从复制延迟。

如果存在复制延迟等性能问题,我们应该关注瓶颈所在。除了调整配置参数和硬件之外,通常还有几种架构方法。一,横向分割,常见的情况是归档订单,对于电子商务系统来说,商品和用户是核心,订单数据在某种意义上只是一个日志,当然,还有一些系统级别的水平细分程序。其次,热点隔离,例如在尖峰的情况下,可能只涉及一种或两种商品,我们可以完全将相关商品的库存与其他商品隔离开来。当然,这需要在应用层上进行大量工作。第三,异步写入。对于需要较少严格事务的事务,例如写入某些日志,可以通过首先写入队列然后以特定速率写入数据库来降低压力。第四,报告等只读应用程序可以独立调用专用从属库。

服务降级

在设计峰值系统时,必须考虑到当系统压力迅速增加时,某些服务或页面需要根据服务和流量条件进行战略性降级,以释放服务器资源以确保核心业务的运行。服务降级通常有两种类型:业务层降级和系统级降级。

业务层的降级是指根据系统压力对服务进行降级的功能,并且功能根据系统压力而降低。例如,停止某些复杂的配置配置,关闭对某些页面的访问或写入操作。通常,对于前端交易系统,业务层退化点的优先级基于对转换率的影响。对于后台操作系统,以业务ERP为例,非主要业务流程的模块或功能,如关闭数据显示和实时报表查询,在高峰期使用,以确保顺利订单处理操作的操作。

降级系统层是指通过调整系统体系结构级别(例如操作系统,Web服务器和数据库)的配置来降级服务的目的。一般方法是访问限制,写入限制,异步延迟持久性等。通常,系统级降级对用户体验的影响将远大于业务层降级,但实现相对简单,并且实现成本较低。请注意,服务降级方案可能会不同程度地影响用户体验,交易系统的转换率和业务处理过程。因此,开发运营和维护方需要事先和批准后与业务方或客户进行通信。然后进行控制点的掩埋和开发,并编写峰值情况响应计划。

监控,操作和维护

一个成功的电子商务高峰系统,三点研发,七点运营和维护。完美的监控系统是运营和维护的眼睛。通过监控指标的变化,操作维护人员可以手动或自动调整系统资源,生成故障处理报警通知,也可以及时做出服务降级决策。常见的监控系统分为三类:系统性能监控,用户体验监控和实时业务监控。

系统性能监控,主要监控以下指标:服务器指标,如CPU,内存,磁盘等;数据库指标,如QPS,主从复制延迟,进程,慢查询。此外,根据使用的体系结构,还有消息队列累积监视。通过监控这一系列系统指标,您可以找到运行健康问题的服务和服务器,还可以评估系统的繁忙程度以便及时处理。对于服务器指示器监视,通常可以使用Nagios和Cacti。数据库监控可以使用相关数据库提供的监控工具,或通过组合Nagios和Cacti进行少量二次开发。

用户体验监控,主要监控业务的关键流程,例如监控流程的可用性,如页面访问,用户登录流程和订单流程。监控可以由Last mile最终客户端模拟或IDC会议室部署的测试脚本启动。 。用户体验监控对于及时发现系统监控层无法找到的一些问题或监控中未包含的指标(如系统错误,前面提到的主动同步延迟)具有重要意义。可以结合当前使用的监控工具进行一定程度的二次开发,市场上也有一些第三方云服务。

实时业务监控,主要是指业务数据的监控,如PV,UV,转换率,订单数量,支付量,出货量和仓库效率数据。在为业务提供相关决策的同时,也可以使用它。为了协助判断系统问题。服务的实时监控通常分为两种类型:侵入式和非侵入式。入侵类型需要隐藏在程序的每个进程节点上。触发相关操作后,会将其推送到监控界面,以便通过消息队列进行显示。非侵入式通常分析网络流量并匹配相应的内容分析请求。相关目标事件的发生以及统计和显示监控界面。侵入式监控系统通常需要定制开发,但实现逻辑简单且技术难度大;非侵入式监控系统很难开发,但部署配置简单,而且由于目标系统不需要二次开发,目标系统没有压力。

除了上面讨论的常见问题之外,在设计电子商务高峰系统的过程中,还有许多问题需要解决,如缓存更新机制,可靠的消息队列设计,以及自动化操作和维护系统的构建。但最重要的是要求我们的电子商务系统架构师熟练掌握技术和业务,以便设计出具有卓越性能和合理成本的电子商务高峰系统。


随商信息技术(上海)有限公司 b2b2c多用户商城系统是基于PHP技术的企业级电子商务平台系统,系统支持平台自营、招商加盟和多商家入驻、集成微信商城、移动端APP商城、微信小程序于一体。公司主营业务包含商城系统定制开发、新零售系统解决方案、电商平台系统定制开发、商城网站建设服务等等,ShopSuite为大、中、小企业提供一个安全、高效、强大的电子商务解决方案,协助企业快速构建、部署和管理其电子商务平台,拓展企业销售渠道,致力于推动PHP技术和电子商务行业的发展而不断努力。

文章关键词  
商城系统
电子商务平台