新型线上门店Saas系统的分布式控制方法与流程

文档序号:11236871阅读:1407来源:国知局
新型线上门店Saas系统的分布式控制方法与流程

本发明涉及电子商务技术领域,尤其涉及一种新型线上门店saas系统的分布式控制方法。



背景技术:

线上门店saas系统可以便捷的给用户提供店铺展示和商品销售服务。已有的线上门店saas系统对于店铺内容、商品信息、营销活动的展示效率低,子门店的数据全都独立存储,共用数据无法共享且重复存储,并缺乏分级缓存机制。

当系统上建立了大量的店铺,并且用户访问量较大的时候,会导致系统出现以下问题:

1、系统大量数据的存储,包含大量冗余数据,占用存储空间和计算资源,使得服务器系统资源消耗大,降低系统的性能。

2、大量重复数据的独立存储,存储结构复杂,对数据的检索效率低,读取数据时耗时长,也导致运算资源的浪费。

3、多店铺之间数据无法有效的同步,如库存、相同的商品信息等,导致大量冗余数据的产生,无法让共同数据的共享,降低系统的性能和稳定性。



技术实现要素:

本发明的目的在于克服现有技术的缺点,提供一种新型线上门店saas系统的分布式控制方法。

一种新型线上门店saas系统的分布式控制方法,包括以下步骤:

s1,响应客户请求;

s2,根据所述客户请求,判断被请求门店是否存在相应的程序级缓存数据,是,则进入步骤s6,否,则进入步骤s3;

s3,判断被请求门店是否存在redis缓存数据,是,则将所述redis缓存数据存入被请求门店的程序级缓存数据并进入步骤s6,否,则进入步骤s4;

s4,从总数据库获取数据并根据从被请求门店的redis缓存数据中获取的店铺个性化数据,将数据交由相应的服务进行运算得出最终数据;

s5,将所述最终数据存入被请求门店的redis缓存数据和程序级缓存数据,并进入步骤s6;

s6,向客户返回请求数据。

作为进一步改进的,所述程序级缓存数据和所述redis缓存数据为json格式的缓存数据。

作为进一步改进的,所述json格式的缓存数据采用hash、set或key-value存储方式散列的存储在redis缓存服务和本地缓存服务中。

作为进一步改进的,所述将数据交由相应的服务进行运算得出最终数据的步骤包括:采用nginx负载均衡方式将请求按照iphash算法分发给分布式的webserver进行运算得出最终数据。

作为进一步改进的,所述分布式的webserver进行运算得出最终数据的步骤包括:所述分布式的webserver采用map-reduce运算得出最终数据。

作为进一步改进的,所述map-reduce运算包括以下步骤:

s41,通过mapping函数把数据分解映射key,value形式的最小单元;

s42,通过combine函数将mapping出的键值对进行重复键合并,以减少数据通信开销;

s43,通过partitioner函数把不同节点的数据按照key进行分组;以及

s44,通过reducing函数进行接收,并对分组后的数据进行最终计算,返回结果。

与现有技术相比较,本发明具有以下优点:

其一,根据系统数据分片,将公用并可共享的数据存储在总数据库,大量减少了系统存储资源的占用,而数据量的减少,再数据获取的时减少检索占用资源和系统io操作等资源的占用。

其二,当店铺系统开店时的商品等公用数据从总数据快速缓存到店主的店铺,店主店铺即时创建,另店主根据自己营销方式针对店铺个性化配置,该数据数据通过运算得到店铺最终展示的数据,从而得到json格式的缓存数据,采用hash,set,key-value等多种存储方式,将数据散列的存储在redis缓存服务和本地缓存服务,其中公用数据的使用减少数据检索的消耗,服务计算量也大量减少,实现对数据的快速检索。

其三,采用nginx负载均衡方式,nginx将请求按照iphash算法分发给分布式的webserver,这样解决单个webserver项目性能瓶颈的问题,提升系统的高并发访问的稳健性。

其四,系统中采用mapreduce分布式计算,将大量店主数据进行数据分片,分散在各个节点上,方便mapreduce程序的计算。通过该技术实现大数据并行处理计算,解决了系统对大数据运算的要求。

其五、增加了程序级缓存,且程序级缓存可以有多组以实现成组扩容,在突发热点引起流量骤增的业务场景下,可实现缓存的横向扩展。

附图说明

附图1是新型线上门店saas系统的分布式控制方法的流程图。

附图2是新型线上门店saas系统的分布式控制方法中多级缓存的结构示意图。

附图3是新型线上门店saas系统的分布式控制方法中采用map-reduce运算获得最终数据的流程图。

具体实施方式

为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。

下面结合附图与具体实施方式对本发明作进一步详细描述。

一种新型线上门店saas系统的分布式控制方法,包括以下步骤:

s1,响应客户请求;

s2,根据所述客户请求,判断被请求门店是否存在相应的程序级缓存数据,是,则进入步骤s6,否,则进入步骤s3;

s3,判断被请求门店是否存在redis缓存数据,是,则将所述redis缓存数据存入被请求门店的程序级缓存数据并进入步骤s6,否,则进入步骤s4;

s4,从总数据库获取数据并根据从被请求门店的redis缓存数据中获取的店铺个性化数据,将数据交由相应的服务进行运算得出最终数据;

s5,将所述最终数据存入被请求门店的redis缓存数据和程序级缓存数据,并进入步骤s6;

s6,向客户返回请求数据。

包含主、从结构部署缓存服务满足大多数系统业务场景,但是在促销活动这种存在突发热点引起流量骤增的业务场景下需要缓存能横向扩展。请参照图2,为了解决横向扩展的问题,增加了程序级缓存(cache),实现了多级缓存,程序级cache的容量一般小于redis缓存容量,也就是说程序级cache中的数据热度要更高;同时程序级cache可以有多组,需要横向扩展的时候,只需要成组扩容程序级cache即可。

当店铺系统开店时的商品等公用数据,可以从总数据快速缓存到店主的店铺,店主店铺即时创建,另店主根据自己营销方式针对店铺个性化配置,该数据数据通过运算得到店铺最终展示的数据,从而得到json格式的缓存数据,采用hash,set,key-value等多种存储方式,将数据散列的存储在redis缓存服务和本地缓存服务,其中公用数据的使用减少数据检索的消耗,服务计算量也大量减少,实现对数据的快速检索。

用户访问时,系统响应请求,将从程序级缓存中返回需要的数据,程序级缓存存储的是系统极热点数据。此时如果在程序级缓存中无法找到需要的数据,系统将请求提交到redis缓存服务,redis主从服务中获取数据返回。如果依然无法获取到数据,将从总数据库获取数据和从redis中获取店铺个性化数据,将数据交由相应的服务进行运算得出最终数据,将数据缓存至redis缓存和程序级缓存,最后返回用户请求的数据。

所述将数据交由相应的服务进行运算得出最终数据的步骤包括:采用nginx负载均衡方式将请求按照iphash算法分发给分布式的webserver进行运算得出最终数据。

请参照图3,作为进一步改进的,所述分布式的webserver进行运算得出最终数据的步骤采用map-reduce运算进行。其中,所述map-reduce运算包括以下步骤:

s41,通过mapping函数把数据分解映射成key,value形式的最小单元;

s42,通过combine函数将mapping出的键值对进行重复键合并,以减少数据通信开销,在这一步骤中,也相对于提前进行预计算一部分,加快总体计算速度;

s43,通过partitioner函数把不同节点的数据按照key进行分组;以及

s44,通过reducing函数进行接收,并对分组后的数据进行最终计算,返回结果。

采用map-reduce技术实现系统分布式计算,实现店铺大数据的管理运算,将总数据库和个性化数据计算得到店铺展示需要的数据,并将数据按数据访问的热点分级存储。店铺开店时,总数据库中记录的主要为共用共享数据,该数据主要因所有店铺共享使用,数据也按热点方式存储在redis和程序级缓存,店主访问时,数据可直接从缓存获取计算得到结果,或是直接将缓存中的数据结果返回店主。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1