ABS厂家
免费服务热线

Free service

hotline

010-00000000
ABS厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

CTO俱乐部第118期酒仙网垂直电商系统构成万芳

发布时间:2020-02-14 12:35:25 阅读: 来源:ABS厂家

CTO俱乐部第118期:酒仙网垂直电商系统构成-CSDN.NET

摘要:CTO俱乐部第118期活动“垂直电商系统构成”走进了酒仙网。酒仙网研发一部技术总监张松标结合酒仙网的实例给大家分享了垂直电商的系统构成。

北京时间11月28日,CSDNCTO俱乐部第118期活动“垂直电商系统构成”走进了酒仙网。酒仙网是一家创办于2009年的公司,是目前中国最大的综合性酒类电子商务公司。

活动上,酒仙网研发一部技术总监张松标结合酒仙网的实例给大家分享了垂直电商的系统构成。

酒仙网研发一部技术总监 张松标

以下为张松标的分享实录:

“五层分级”、“四大服务”支撑酒仙网系统架构

酒仙网系统结构是面向SOA的体系结构,采用此体系是为了满足业务发展的需要,保证能够进行拓展。整体框架以“缓存服务”、“索引服务”、“消息服务”、“日志服务”四大服务为支撑,且采用了多层分级服务体系结构。

第一层做Web应用和APP应用,主要面向消费者层面。酒仙网称之为展现层,根据业务和功能的划分成各个不同的业务子系统。在电商行业网站里面比较特殊,像这一层,在酒仙网就包括ERP、面对消费者的官网和移动网站。官网方面,酒仙网会分成各个子业务模块进行拓展。一般是独立部署,独立部署之后有效的增加性能拓展。这层是静态文件,酒仙网都是独立部署的。一般上CDN的时候,动态文件就不便上CDN的,静态文件是常年上CDN的,动静分层的管理。

第二层是缓存。酒仙网有一级缓存和二级缓存。一级缓存,主要减少展现层和服务层的数据交互,这样酒仙网就有效增加传输效率,同时也减少了服务层的计算压力。每一个缓存的层面都加了独立的开关,以便于调试和纠错。

第三层是服务层,服务层也是根据各个不同的功能和业务子系统进行切分。一般业务子系统之间是不存在相互调用的,但是酒仙网的子功能之间是会相互调用的,并且进行交叉调用的形式。服务层是直接跟Web应用展现层进行数据交互,这层不会和数据库打交道。服务层也是根据各个不同的子系统和业务划分之后进行独立部署,这样有利于压力的抗衡。在拓展层面会更加便捷。

第四层属于二级缓存。上一级已经有一级缓存,下面这级缓存对web接口提供数据交互,web接口不经过一级缓存,直接走服务层往外进行数据传输,在这里为了减少数据库的压力。二级缓存跟一级缓存性质上是一样的,只不过在过程当中起的作用是不一样的。

第五层是数据库。酒仙网根据不同的功能,切分成不同的物理基因进行部署。数据库是采取主从分离的形式,一主多从进行数据同步来进行交互的。因为切分成不同的物理基因,酒仙网就形成了多主多从的协定。

酒仙网的创新:思想服务层概念

酒仙网还专门提出了思想服务层的概念,这个服务实际上跟主业务关联性不是太大,但是有。它主要做缓存服务调动,跟业务相关。索引主要做电商行业的搜索。商品比较大的时候,就用索引服务来做。索引服务这块,有自动索引和手动索引两个功能,自动索引不需要人员维护,相关的数据会自动在索引上进行补充。酒仙网也做了手工的索引服务,有一些索引人工是可以干预的。消息服务这块有两个,一个是为了性能扩展用的,像一般电商数据量比较大,下单的时候,酒仙网会把数据缓存到消息队列。还有一种消息服务是做通知用的,日志服务进行消息传送,主要是排错,还有平时的行为记录,对各种行为,包括消费者的行为进行记录。

这如何理解呢?用一个简单的模型来解释数据调度的问题:子系统是SOA的形式,各个业务子系统之间都是独立运作的,可以采用两种形式进行数据交互。第一种是实时交互,各个子系统之间交互都不会直接参与到数据库层面,而是通过引入API形式进行。实时交互就是第一个子系统调用到第二个子系统的接口进行数据传输,有读写和推送两种形式。第二种是非实时数据传输,根据不同要求做不同的实际调度。有些服务要求实时比较高的,就得在两分钟之内进行调度,而有些服务要求实时不是特别高的,酒仙网就采用5分钟或者半小时的时间里进行调度。

非实时调度分两个层面,一个是代码管理,因为它比较独立简单。另外一个可以提升酒仙网系统的效率,减少数据实时传输的困难。移动这一块比较特殊,跟移动官网比较相似,是通过API的形式进行展现的。目前酒仙网有三个移动产品:一个iOS、一个安卓,这两个都是APP的业务,还有一个是WAP。APP和WAP可以交互,电商行业有很多促销变化比较快,因为APP部署有审核周期,所以酒仙网直接嵌到WAP的形式进行。但是WAP不能单纯的作为WAP形式,有时还得跟APP进行交互,但得通过子系统的形式。

酒仙网的流程是这样的

酒仙网的电商流向是比较复杂的,从前端用户下单、到后台、再到管理中心、接着到ERP、然后到WMS最后到仓库,让订单流动起来,是比较复杂的,所以酒仙网的技术人员还特别分享了他们的流程。

前端部分,酒仙网用户通过官网或者移动产品从购物车到下单时会分两种情况。比如采用货到付款(货到付款是用户用的最多)的形式,订单进入待确认状态,如果需人工操作,大概需要半个小时左右的时间,再到订单审核,如果这个订单无效的话就可以直接结束。比如说像酒仙网库存占用,或者像优惠券,或者积分返还,有的订单就以作废形式处理。如果是有效订单,就直接占用可销售的库存,这时候商品,库存就减少,就不能再卖了,就进行WMS系统进行流转。

第二种情况是在线支付,在待支付状态时客户可以选择支付或者不支付。不支付的话,酒仙网可以把订单取消。如果这个时候客户有支付意向,酒仙网会保存库存,保留N小时,正常情况酒仙网会保留两个小时甚至更长,最长会保留到48个小时,平时库存不会太紧张,除了大促销、周年庆、或者双十一这一系列的大型活动时,酒仙网就会把保存时间调短。如果这个时候支付成功了,就正式的占用销售库存,进行仓库流转。

当酒仙网的订单进入仓库之后,酒仙网就会走WMS的整个流程。第一个就是仓库的打印,就是打印库存,酒仙网会用不同的状态进行记录,在WMS流转系统中各种状态用法都不一样。首先占用打印库存之后,正常打印会走核单打包的过程,然后进入到仓库的称重,这时需跟第三方合作,或者酒仙网自己发货,这样就会占用称重的库存。前三个阶段,订单是可以取消的,取消的时候酒仙网就会放占用的库存。第四阶段仓库发货,订单就正式出库了,就不能再取消订单。如果想退单的话就只能走退货的流程。

整个订单在WMS的过程中,会以接口的形式推送给各个官网平台,这时用户就能看得到订单到哪一步,包括物流状态。酒仙网WMS子系统跟官网是两个完全独立的系统,它们之间也都是以接口的形式进行通信的。

酒仙网根据上面这四个条件,来决定酒仙网的采购行为,就是酒仙网该采什么样的货,采多少?根据各仓库的销售趋势,采购在途数,就是已经下单还没有到货的部分,安全库存报警,就是WMS卖了多少,仓库还剩多少,还有多少促销活动申请。每一次大促之前,都会准备大于预售的商品在库存里进行备货。根据这四个条件酒仙网下采购申请单。采购申请单下完之后再进行核单,核单后才提交给供应商进行采货,这才是正式的采购环节。

采购到的货酒仙网会把其中的30%拿出做质检,不合格就拒收,合格之后就收货上架。这个判断是比较复杂的,第一是不是缺货单,缺货单就是之前下的订单有缺货的,还有破损的,需要按时发货,但是仓库没有货的订单,酒仙网优先补缺货单,补完缺货单后再判断是不是有剩余,有剩余才能正式上架,没有剩余就不能上架。这是采购的流转过程。

如何处理复杂数据流向问题

电商行业正常情况下都会面临一个问题,每次大促销压力都非常大,因为互联网的环境很复杂,订单量、数据流量不可预估,甚至存在一些带有恶意行为的竞争对手。每一次大促销都要做非常周全的准备工作,都得严阵以待。对于这些,酒仙网一般会做以下几个工作:

第一是人员协调,每个部门成立专项指挥小组,专门攻克每个业务环节的难关。市场运营方面也会组织这种类似的专项小组。

第二是技术方面,每次都会成立不少于七八个人的数据指挥小组,每个小组还要抽出专门的对接人员进行业务对接。此外,酒仙网还会准备数据沙盘,灵活操控数据动态。

代码优化上,每次大促销都会出现一些新的促销形式。比如说像电商的抽奖活动,发红包,每次出现新的形式后,一些老的形式都会进行业务梳理,专门组织梳理业务流程的工作。梳理完后,都会统一的做性能测试。但在每次的大促销前,都会组织大型的性能测试,分内外两个部分。对内包括对每一个固定模块进行性能测试,也会对综合业务模块进行测试。做完内部的性能测试之后,会邀请酒仙网的朋友,当然也包括专业的测试服务公司,和酒仙网一起参与性能测试。

一般酒仙网对流量都会有一个预估,比如双十一,酒仙网的性能预估是2000万的UA,酒仙网就会朝着1.5-2倍的方向去考虑,系统必须要达到这个要求。在测试的过程中,还会发现一些新问题,比如有些业务流程在代码层面不是特别流畅,这时酒仙网就会做瓶颈代码的更改。万一这个业务一时半会得不到解决,比如说有的时候时间比较仓促了,或者发生其他情况,这时就只能丢车保帅,保留一些业务性能影响大的东西,对影响不是太大的功能进行屏蔽。

前面的工作做好以后,还得做风险评估,主要包括两面,一是运维层面,二是程序层面。程序有安全性能问题时,酒仙网也会出相应的风险评估预案,万一真存在问题的话,酒仙网会关闭一部分的业务,酒仙网会提前把预案想好,接下来进入另一个环节就是服务器网络优化这块,风险评估和后面的东西是息息相关的。

在网络优化上,酒仙网是怎么做的?

在网络优化这块,负载均衡在整个的过程当中,特别是订单体系的运行过程中都会有的,但是在大促的时候,酒仙网会临时增加负载均衡量,之前服务器没有那么多,酒仙网应对大促会临时进行补充——增加CDN。在平时酒仙网酒仙网都会有CDN,但是不会那么多,平时主要是静态内容,比如说静态专题,或者CSGS的图片会采用CDN,动态的内容很少用到这个功能。但是大促的时候,酒仙网会大量接入CDN,根据预估量的大小,启用对应的CDN。

另外,酒仙网也会进行数据库性能评估。每一次大促期间,性能都是最优先考虑的。如果说数据库达不到,酒仙网会采取临时的解决方案,比如说上FIO卡,上负载硬盘,以及减缓数据库的压力,或者酒仙网增加缓存量等。有一些关键性的业务,缓存时间比较短,有一些业务可能不用缓存。这个时候如果说预估超出系统承载量的话,这时候可增加缓存的使用,把时间延长。

酒仙网系统有很多的机房,多个地方进行布点,甚至超出北京的范围,导致它的故障也不确定,因为大促期间互联网环境比较复杂。比如说双十一,各大电商都做电商,整个互联网的效率都跟不上,这样在全国各地布的机房,可能出现数据延迟的问题,这时候酒仙网会进行实时的监控。比如说酒仙网发现有一些节点有故障的话,酒仙网可能临时的不使用这个节点,来进行故障切换。比如说有一些地方的CDN可能出现问题,有一些地方不会,酒仙网会把这个出现问题的机器替换,把有故障切换到另外一个机房去。一般大促前两天都会有人实时盯着整个过程的发展。

此外分享一下数据沙盘。每一次大促时都会有一个关于整个动态过程的数据,这个动态不完全是实时的,但是基本上是实时的。通过沙盘酒仙网可以看到系统运作情况。这可为销售工作提供实时的应变,比如说哪个地方哪个酒卖的好,哪个地方的促销需要调整,酒仙网会实时监控数据沙盘实时调整战略。

电商行业价格机制问题的解决

最后再分享一下电商行业的价格机制问题,这也是酒仙网电商会面临的困难。再实时的系统,用户点开一个页面,在购买的过程当中,电商都会面临这样的问题,就是价格对不上。就算是实时数据的话,酒仙网打开一个商品是一个价格,加入购物车的时候,价格被人为多次的更改,同时也随着促销时间到与否,都会导致这个问题。

酒仙网有几十种促销形式,而且都比较复杂,在这个过程中,实时的计算价格,一定会带来性能问题。酒仙网把促销记入缓存中,把价格写入缓存,商品的价格在后台设置好,过期时间跟促销的过期时间正好吻合,这时取商品价格的话,就得从缓存中读取。

有时,缓存还是不可靠的。后台操作的时候,难免会出现问题,在这时酒仙网需要进行调度和补充。酒仙网的调度服务就是不停的刷新商品价格,把价格补充到数据库中,按价格进行排序。

会后,酒仙网技术人员表示,他们的价格机制虽然这样解决了,但还是有一些不足。比如价格的问题,打开商品时显示有时不是实时,另外酒仙网设置时也会出问题,到前台又出现其他问题,再到打开商品时,会有一个时效性的问题存在,并且商品加入购物车是一个价格,但是提交订单的时候又发生变化了。

针对这些问题,李恒做出了解答,他称价格不是实时的问题其实只要保证下单时的价格和用户取单时的一致,就有解决办法,比如把订单在后端做防篡改。而在提交订单时价格发生变化,李恒表示,最终是确认订单,支付订单是没有问题的,新加商品和购物车一起确认话要刷新一下价格,进行付款。比如说iPhone5S上线,各省促销方案都不一样,比如今天看到的可能是昨天的价格。两个点,一是购物车确认结算的时候重新刷一下价格,如果已经过期,已后刷新的价格为准。这样的话就不会存在投诉的问题。现在酒仙网最大的问题是在浏览网页的过程中,只有几个事件是可以跟用户确认的,酒仙网要保证价格和最终购买一致才可以,其他的情况下,用多长时间刷新,那是酒仙网服务器承载的能力,缓存和实际价格之间的更新又是一个问题。

最大的问题是客户看见是不是符合实际,但是要尽量让用户看到实际的价格,酒仙网要替他刷新,要看一下用户行为,在购买过程当中分析界面数据,给用户最合适的刷新。比如说有几个时间点,购物车,购物车结算,真正结算单,这一点一定要校正成酒仙网真正的价格。

在张松标分享结束之后,从法国归来的酒仙网调酒师Ranya给CTO俱乐部的会员带来了品酒知识分享,并现场体验了酒仙网提供的两款葡萄酒。

酒仙网调酒师Ranya在分享品酒知识

品酒会之后,参加活动的CTO俱乐部会员一起参观了酒仙网的办公环境及仓库。

酒仙网办公环境

酒仙网产品包装流水线

酒仙网仓库

更多精彩内容及CSDN CTO俱乐部的下期线下活动,请持续关注

CSDN CTO俱乐部。

CTO俱乐部是CSDN旗下面向广大技术管理者的网上大本营,采取采用了严格的邀请审核制,只有公司的高级技术管理者,如CTO、技术总监、开发总监、工程总监才能申请加入,现已有10000多名会员。CTO俱乐部定期举行线下活动,就相关主题进行共同探讨。

美女性感写真

旗袍美女图片

美女性感图片

性感美女图片