基于高并发架构的O 2O交易系统的研究与实现
2018-05-28钱包生活平潭科技有限公司上海分公司
钱包生活(平潭)科技有限公司上海分公司 刘 健
1.引言
电子商务日益成为当今社会发展的一个重要组成部分,愈来愈多地占据了市场的主要份额。在此背景下,传统的零售行业遭到不小的撞击。零售公司明确地到只有和互联网相结合,积极地转型、拓宽线上途径,才可以更好地得到发展。他们基于自身的长处出发,探讨线下和线上二者相结合的一类商业化模式,据此而出现了O2O(Online to Offline)交易模式,变成化解传统零售公司转型与发展的重要渠道。
O2O 交易系统是传统销售模式与电商的有机融合。在整个交易系统内,无论是下单、还是支付以及物流等步骤,都充分地打通线上与线下的交易。O2O交易系统应兼具7X12h的线下服务模式,又应配置7x24 h的线上式服务项目,和系统所提出的要求相比而言,更具有实际的可用性。同时,O2O交易系统的要求是能够同步地支撑大规模的线上用应用,尤其是促销与秒杀等活动中出现的超高型负载,因此,须具有更佳的高并发性特征。
当下,一些大规模的电商系统,诸如京东与淘宝等,它们的架构技术日益成熟化,系统也具备良好的高并发使用性。然而,它们的交易系统所对应的架构经验就零售O2O交易系统所具有的参考借鉴意义并不充分。据此,本论文基于高并发架构分析O2O交易系统。
2.高并发架构的O2O交易系统理论
2.1 高并发概念
高并发(High Concurrency)在设计互联网的分布式体系架构时应顾及到的一个重要指标,指的是基于设计确保系统可以同步地并行地处理不少请求,且通常包括如下的一些相关因素:
响应时间(Response Time):系统对于请求内容所提出的响应时间。比如,系统在处理单个HTTP请求所花费的时间为200ms,此200ms即指的是系统响应时间。
吞吐量(Throughput):在单位时间中所处置的请求数。
每秒查询率QPS(Query Per Second):在每秒内响应的请求数量。互联网范畴中,此指标与吞吐量之间的区别并不如此分明。
并发用户数:实时承受正常性应用系统功能所对应的用户数。比如,单个即时性通讯系统,同步在线量就一定程度而言所代表的是系统并发的用户数。
2.2 O2O电子商务平台的相关理论
2.2.1 O 2O电子商务平台概念
O2O电子商务也就是Online线上互联网店Offline线下消费。商家采纳零费用开通网店的方式,把商家及其商品的相关信息等内容呈现在客户面前,客户通过线上展开筛选服务且进行支付,线下则对消费进行验证并体验。这样就能够尽量地满足客户多元化的需求,亦能够省却客户由于在线消费而未能消费上的开支。商家根据网店所传播的信息速度更快,范围也更广泛,能够在短时间内聚集功能更为强大的消费功能。此模式的核心特征在于商家与客户均可以经由O2O交易系统满足双方所需。
2.2.2 O 2O交易系统的核心
根据相关的数据信息表明,即便在美国这样电子商务最为发达的国家地区,线下消费所占据的比重仍旧高达约93%。Trial Pay的创始者兼CEOA lex Rampell在对线下消费的规模时曾言:一般的互联网客户每年所花费的开支大概为1000美元,假定普通的美国人每年每一年的收入是4万美元,则余下的39000美元跑到哪儿了?唯一的答案为大多数的开支均运用于本地的消费,百姓会将钱用于酒吧、咖啡店、餐厅、健身房、加油站、干洗店、水电工以及发廊等。
造成这一现象的原因不单单在于线下服务无法装箱运输,更为关键的在于快递自身难以传递由于社交体验所产生的快感。然而,基于O2O交易系统,可以把线下的商品及其服务加以展示,且提供在线的支付与预约等消费,此对于客户而言,不单单拓展了挑选的余地,还能够经由线上的比对方式来挑选出最让人期待的服务,以及根据客户的地区性条件享受商家所提供的更为恰当的服务项目。但若无线上的展示,客户可能会很难无法得知商家的相关信息,更遑论消费了。同时,当下正在探讨使用的O2O交易系统的商家们,也往往会比采纳线下消费更加优惠的方式吸引消费者采用在线消费,此也替客户省却了一笔费用。
2.3 区域服务的重要性
因为移动互联网日益呈现出个性化、宽带化与大众化等特点展,移动商务的大规模化市场也在日益地启动,基于Mobile(移动化)、Social (社交化)以及Local(本地化)等特征所整合的So Lo Mo被视作是网络将来的发展走向。
Mobile被视作移动商业新范式的技术支持和载体。当移动互联网的相关技术日益发展之际,互联网销售也由个体电脑的固定化方位转向至持续性更易的人体自身,致使移动手机的运用模式持续性地创新和用户体验的日益升级。智能化手机的推广推动了即时性搜索功能的进一步发展,直接替“本地化”的移动互联网的典型化服务模式体现出商业性价值提供了必要的保障,也替用户实时消费和体验公享提供了对应的载体。
Local为移动商业的新模式地理指标的基础。LBS (Location Based Service,根据方位的服务项目)是基于移动通信互联网或是外界定位渠道获取移动终端客户的地理方位信息。根据GIS (Geo-graphic Information System,地理信息系统)相应平台的支撑功能,替用户提供有关服务项目的一类增值型业务。根据具体方位进行服务,空间应用者不不单单能够采用时间,同时也能够使用地理坐标信息来筛选商务数据信息,空间的管理人员能够准确地定位每一个需要进行互动交流的空间使用人员。因而,由于受到Mobile技术的支持作用,商家能够应用客户签到的数据信息展开进一步的数据信息挖掘,搜集客户的品位嗜好、生活半径、消费程度与消费习惯等一系列的信息,再据此提供和方位有关的各类信息数据服务。Social替移动商业的新范式汇聚了用户的相关资源。SNS (Social Net work Service,社交网络服务)的和谐功能在于替具有一致兴趣爱好以及活动的用户构建互联网社区,经由网络渠道替使用者提供联系和沟通的交互式通路。经由社会化互联网,不同用户内部间可以展开多向路的互动与信赖推荐,进而达到传递社会化的关系链与共享信息内容,商家可以达到更为准确的定向式销售目标。
3.高并发架构的O2O交易系统的设计与实现
3.1 三层式架构-分层解耦
本论文所设计的系统总体架构所应用的是分层化的设计观念,把每一层的架构展开模块化的设计,层和模块之间经由不多的接口通信确保耦合性并不高。如此设计是提高系统的可用特性与并发性的前提条件。O2O交易系统的分层与模块化的架构可参见图1所示,使用的是三层式的架构方式,具体分析如下:1)表现层。该层为直接和用户进行交互过程的前端的界面,主要有:用户App客户端、柜台销售人员的营销互联网界面以及商城管理人员的互联网界面等结构;2)应用层主要是O2O业务的逻辑实现层,其中包括以下的分体系:用户体系、价格体系、推荐体系、库存体系、产品体系、支付体系、购物车体系、订单体系、结算体系、物流体系以及购物聊天体系等;3)数据层为系统数据以及务数据的储存层,主要包括如下的几个模块:关系型数据库、缓存、全文检索存储、图片与文件储存以及数据仓库等。
图1 高并发架构的O2O交易系统的结构图示
3.2 应用层-集群式负载平衡
逻辑层相应的架构对策有不少的备选方案。单机架构的并发性与可用性并不高;双机的主备范式模式相对比较不错的可用性但是无法填补O2O交易系统对于并发性所提出的要求;集群式负载平衡模式为是使用最为频繁的一种业务逻辑层的高并发与高度可应用型对策。
应用层-集群式负载平衡内全部业务逻辑的服务器须为对等且没有状态的,能够基于系统的容量来协调服务器的数目。全部客户端请求经由负载平衡器转发至业务逻辑的服务器。较为单一性的负载平衡器出现单点事故的系统性风险,出于保障系统所应用的高度可用性原因,采纳负载平衡器和Keepalived心跳测试器建构主从负载平衡结构,在通常环境中,主负载平衡器经由虚拟IP和客户端进行交互作用,若主负载平衡器出现了故障,那么Keepalived即可以在短时间内测试到,从而会把通过负载平衡器挑选成主负载平衡器,再接管至虚拟IP,和每一个客户端进行直接地交互。Keepalived 须布局于每个负载平衡服务器内,并在每一台机器上进行对应的配置,相关的核心配置项分析见下:
负载平衡器提供多元化的选择种类,大致包括2种:软件负载平衡器宇硬件负载平衡器。其中,前者能够挑选Nginx、LVS与HAProxy等;后者能够挑选A10,CitrixNetScaler与F5,Radware等。
以往营销系统通常采纳的是单一式种类的数据储存,尤其是关系类型的数据储存。MySQL、Oracle以及SQL server等即是主要的代表,这些数据库已非常地完善,凸显出明显的功能特征,具有稳定的状态,能够与ACID理想化的事务特征相吻合。然而,就O2O交易系统而言,基于线上的用户和商品的相关数据信息可知,关系型数据库无论是储存的灵活度、高并发性指标上均会暴露出一定的不足之处。混合型数据储存借助于各个数据储存模式,把相对较为独立性的数据集借助于恰当的渠道加以储存,在确保系统数据信息一致性的前提下,加强系统的并发性和可用性。
本论文所设计的O2O交易系统的数据储存架构中,核心的数据库还是关系型数据库。因为其本身所体现出的稳定性、强功能以及优良的事物特点等,都优于其它非关系型的数据库或是其他类型数据储存方式难以媲美的。至于高频率操控的数据信息,除却储存于数据库内之外,还须储存于缓存内,缓存一般包括2种:持久性的缓存以及换入换出的缓存。其中,前者采纳的是日志来确保缓存的非易失现象,比如,redis主要运用于储存订单与库存等一些关涉高并发类型操控的关键性数据;后者则属于纯内存式的缓存,若容量处于达阈值时,通常借助于LRU等计算方法换出其中一块较老的缓存,比如,memcached主要应用于储存访问比较频繁的商品与用户数据。出于加快用户检索商品数据信息的目的,需要应用全文搜索引擎来储存数据和索引。至于图片与文件等一些非结构化的数据则采纳的是的文件系统储存。至于使用者所产生的大量历史信息数据以及日志数据等须定期地植入到数据仓库储存,有利于后续数据的研究。混合型数据储存能够充分地使用不同储存方式的长处,可以高效地提高系统的可行性与并发性。
由于O2O交易系统中的数据在日益递增,单一性的数据节点较易变成性能上的瓶颈,并难以且容纳所有的数据信息,此即需要使用到数据的分片。因而,下图2中的所有数据储存模块须尽可能地设计成分布式储存,其主要方法为分片与冗余。本论文即主要分析的是下图2的MySQL集群板块展开解释。即其数据分片主要包括2种:垂直分片与水平分片。其中,前者的区分单位为表,聚合各个表的内容至相异数据的储存节点处,具体应基于数据信息进行业务方面的耦合度分析,从而把业务比较贴近的表区分至相同的节点处。后者主要是在表内进行区分,若表内的数据量太大之际,则会根据若干字段,把数据分布于分散到各个分片中。分片对策包含一致性的哈希分片与范畴分片。其中,前者是把数据字段以及机器哈希安置于相同的数值范畴内,基于哈希值来界定数据所被配置的具体机器中。后者则是依照字段来取值,把各个取值区间对应的字段分安置在各个机器中。对整个系统的数据库分片所提出的对策时,须先开展垂直分片,再对表的数据量较大者进行水平分片。至于每一个分片均制作成3个数量的冗余备份加以储存,且达到读写的分离目标。
图2 产品、订单与物流的数据分片储存对策
读写分离主要指的是数据库的读与写操作构架层面的差异性处置。具体化的读写分离规律和系统对于确定数据的分片一致性所提出的要求是密切相关的。一致性主要包括以下3种:强、弱与最终的一致性。至于强一致性的相关要求数据分片分析如下:写操作须先写入到主数据的分片中,再通过实时的手段把主数据的分片中所具有的更新功能至从数据的分片;而读操作则能够从任一数据分片加以读取。至于弱一致性要求的数据分片则分析如下:写操作率先写入到主数据的分片之中,再通过异步渠道把主数据分片内的更新作功能至所用的数据库内;读操作能够通过任一数据的分片加以读取。至于最终一致性的相关要求数据分片分析如下,写操作率先写入到主数据的分片之中,再通过实时的渠道把主数据的分片的更新功能至部分从数据的分片之中,通过异步的渠道把主数据分片内的更新功能至其他从数据的分片内,实时更新数据分片的数量是W个;读操作须通过任一R个数量的数据分片加以读取,把合并之后所读取的结果当做最后的结果;假定数据分片的副本总数为N,读写的副本总数须超出N,也就是R+W>N,有关的具体信息能够借鉴RWN的相关协议。
3.3 表现层-静态化的分离
至于变动并不频繁或是模板化的数据信息、界面能够抽象为静态化的资源,比如对商品的详细情况进行描述的界面,展示商品的图片;由于变动或是个性化的数据信息都是常态化的,对于变动比较频繁或是个性化数据和界面者能够抽象成实时资源,比如,商品的详情信息中包括色泽、库存与尺码等一些详细的数据信息。客户端对于静态资源进行并发式访问的功能要远远地超出服务器方面的实时资源请求。基于架构的层面而言,能够把静态的资源和动态的资源加以区别,其中,前者通常储存于相应的Web服务器或是CDN与客户端内,后者通过业务逻辑服务器获得请求,据此提升系统访问功能和并发功能。其中,nginx 一般被视作负载平衡器,实时地区分动态资源与静态资源的相关请求至确定的服务器中。将nginx动态与静态加以分离的核心配置见下:
4.结论
本论文主要研究的课题是高并发架构的O2O交易系统的研究与实现,总结了高并发架构的O2O交易系统理论,包括高并发的概念与O2O电子商务平台的相关理论,然后,对所需要设计的O2O交易系统展开了设计与实现的分析,主要依次地分析了三层式架构-分层解耦、应用层-集群式负载平衡以及表现层-静态化的分离等内容。本论文所提出的高并发O2O交易系统能够将对诸如O2O交易系统的架构设计和实现提供一定的借鉴作用。
[1]Phang C W,Tan C H,Sutanto J,et al.Leveraging O2O commerce for product promotion:An empirical investigation in mainland China[J].IEEE Transactions on Engineering Management,2014,61(4):623-632.
[2]周亚南.非线性代数方程组的一种数值解法[J].应用数学进展,2014(3):91-97.
[3]杨彧剑,林波.分布式存储系统中一致性哈希算法的研究[J].电脑知识与技术(学术交流),2011,22(7):5295-5296.
[4]陈宝.软件开发中的三层架构模式[J].合作经济与科技,2009(6):16-17.
[5]宋英英,李东新.CDN 网站加速—节点服务器流量分析及统计[EB/OL].http://www.paper.edu.cn/html/releasepaper/2012/01/582/,2012-01-17.
[6]顾耀芳.综述全文检索系统[J].现代图书情报技术,1992(1):7-13.
[7]Hollenback P.Improving network reliability with Keepalived[EB/OL].http://www.linuxdevcenter.com/pub/a/linux/2005/09/01/keepalived.html,2015-12-6.
[8]高丹.中国银联互联网支付业务系统设计与实现[D].大连:大连理工大学,2012.
[9]阎基桥.虚拟IP 技术在Intranet中的应用[J].微电脑世界,1997.
[10]张震波,杨鹤标,马振华.基于LRU算法的Web 系统缓存机制[J].计算机工程,2006,32(19):68-70.