分布式订单处理方法、装置及订单处理系统与流程

文档序号:12198897阅读:234来源:国知局
分布式订单处理方法、装置及订单处理系统与流程

本发明涉及计算机技术领域,具体而言,涉及一种分布式订单处理方法、装置及订单处理系统。



背景技术:

近年来电子商务在我国蓬勃发展,人们越来越习惯于网上购物。对此各商家分别推出了网上交易平台,然而随着订单交易量的增加,服务器资源逐步吃紧,订单处理响应速度越来越慢,更是在各种促销活动期间,异常百出,进而极大程度地影响了交易销量并同时还带给了客户对系统安全问题的顾虑。然而为了更好的提供服务,商家不得不随着订单量的增加逐步提升服务器资源配置,当单台服务器达到瓶颈,多数商家则会考虑使用负载均衡,应对高并发的情况。但是,单纯依靠增加服务器配置的方式不仅使服务器资源成本呈指数增长,且终将面临资源瓶颈,而站点的负载均衡方案又需要面临数据安全与并发锁的处理问题。而对于复杂的设计方案或者不小心设计过剩,不仅技术门槛较高、维护成本高,且开发与维护周期都将对平台的运营规划产生副作用。



技术实现要素:

本发明提供一种分布式订单处理方法、装置及订单处理系统,旨在改善上述问题。

第一方面,本发明提供的一种分布式订单处理方法,应用于订单处理系统,所述系统包括第一服务器和多个第二服务器,所述方法包括:所述第一服务器获取订单信息;所述第一服务器将所述订单信息发送到多个所述第二服务器中的任意一个所述第二服务器,以使所述第二服务器处理所述订单信息。

第二方面,本发明提供的一种分布式订单处理装置,所述装置应用于订单处理系统,所述系统包括第一服务器和多个第二服务器,所述装置包括:数据获取模块,用于第一服务器获取订单信息;数据处理模块,用于所述第一服务器将所述订单信息发送到多个所述第二服务器中的任意一个所述第二服务器,以使所述第二服务器处理所述订单信息。

第三方面,本发明提供的一种订单处理系统,包括第一服务器和第二服务器,所述第一服务器与所述第二服务器耦合,所述第一服务器用于获取订单信息,所述第一服务器还用于将所述订单信息发送到多个所述第二服务器中的任意一个所述第二服务器,所述第二服务器用于处理所述订单信息。

上述本发明提供的一种分布式订单处理方法、装置及订单处理系统,该方法通过第一服务器获取客户端发送的订单信息,将所述订单信息发送到多个第二服务器中的任意一个第二服务器,从而使得第二服务器所处理的订单信息的数量位于该第二服务器所能处理的范围内,进而使得订单处理过程更加友好、快速以及安全。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明第一实施例提供的一种订单处理系统的结构框图;

图2图1所示的订单处理系统中的第一服务器的结构框图;

图3为本发明第二实施例提供的一种分布式订单处理方法的流程图;

图4为本发明第三实施例提供的一种分布式订单处理方法的流程图;

图5为本发明第四实施例提供的一种分布式订单处理方法的时序图;

图6为本发明第五实施例提供的一种分布式订单处理装置的结构框图。

具体实施方式

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

请参照图1,是本发明第一实施例提供的一种订单处理系统的结构框图。所述系统600包括第一服务器602、多个第二服务器601和用户终端603。所述第一服务器602与每个所述第二服务器601均耦合。用户终端603和第一服务器602耦合。用户终端603可以是多个。用户终端603中安装有客户端,用户通过用户终端603中的客户端向所述第一服务器602发送订单信息。

在本实施例中,所述第一服务器602用于获取订单信息以及将所述订单信息分发给多个第二服务器601。具体地,所述第一服务器602用于获取用户终端603发送的订单信息。

在本实施例中,所述第二服务器601用于处理所述订单信息,具体地,当所述订单信息所携带的信息与预设信息匹配时,所述第二服务器601将所述订单信息的处理状态修改为未处理,并将所述订单信息存储到第一数据库,发送订单初步处理完成信息至客户端;当所述订单信息所携带的产品数量小于或等于预设产品库存时,所述第二服务器601将所述订单信息存储到第二数据库;当所述第二服务器601接收到所述客户端基于所述订单信息反馈的支付信息后,所述第二服务器601修改所述理订单信息存储在所述第一数据库中的处理状态;发送订单处理完成消息至所述客户端。

其中,所述订单信息包括订单金额和收货人手机号,当所述订单金额与预设第一信息匹配时以及所述收货人手机号与预设第二信息匹配时,所述第二服务器601将所述订单信息的状态修改为未处理,并将所述订单信息存储到第一数据库,当订单信息存储完成后,第二服务器601发送订单初步处理完成信息至客户端。

其中,预设第一信息是指每个商品预先设置的价格以及邮费,所述当所述订单金额与预设第一信息匹配是指将订单金额与预先设置的商品价格和邮费的总和进行比较,判定预先设置的商品价格和邮费的总和是否等于所述订单金额,当预先设置的商品价格和邮费的总和等于所述订单金额时,表示所述订单金额与预设第一信息匹配,否则不匹配。

所述预设第二信息判断收货人手机号是否合法。所述收货人手机号与预设第二信息匹配是指判断订单信息中的收货人手机号是否是13位,如果是,为正常手机号,即收货人手机号是合法的。

在本实施例中,当所述订单信息所携带的产品数量小于或等于预设产品库存时,所述第二服务器601将所述订单信息存储到第二数据库是指第二服务器601基于轮循的方式从所述第一数据库中获取所述订单信息,所述订单信息的处理状态为未处理;第二服务器601将所述订单信息所携带的产品数量与预设产品库存进行比对,当所述产品数量小于或等于所述预设产品库存时,所述第二服务器将所述订单信息存储到所述第二数据库。其中,所述轮循是指每个第二服务器601通过轮流访问第一数据库中的订单信息,直到将第一数据库中的订单信息获取完。

在本实施例中,所述发送订单处理完成消息至所述客户端具体是指所述第二服务器601获取存储在所述第一数据库中所述订单信息的处理状态,当所述处理状态为处理完成状态时,将所述订单信息删除以及发送订单处理完成消息至客户端。

在本实施例中,当所述第二服务器601接收到所述客户端基于所述订单信息反馈的支付信息后,所述第二服务器601修改所述理订单信息存储在所述第一数据库中的处理状态,将所述处理状态修改为已处理或者是已经完成处理,并根据所述订单信息携带的积分信息对所述订单信息所对应的用户的积分进行扣取或者是增加。例如,当用户使用积分进行购买物品时,对用户拥有的积分进行扣除,当用户正常购买物品时,赠送用户购买该物品的相应地积分,即在用户的原始积分上增加用户的积分,根据积分的多少设置用户的VIP(Very Important People,贵宾)等级。当用户购买的物品达到预定数量或者是购买的物品的价格达到预定额度的时候,更新用户的优惠券状态或者是添加赠品等。

如图2所示,为图1所示的订单处理系统中的第一服务器602的结构框图。所述第一服务器602包括分布式订单处理装置500、存储器301、存储控制器302、处理器303、外设接口304和输入输出单元305。

所述存储器301、存储控制器302、处理器303、外设接口304、输入输出单元305各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述分布式订单处理装置500包括至少一个可以软件或固件(firmware)的形式存储于所述存储器301中或固化在所述第一服务器602的操作系统(operating system,OS)中的软件功能模块。所述处理器303用于执行存储器301中存储的可执行模块,例如所述分布式订单处理装置500包括的软件功能模块或计算机程序。

其中,存储器301可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器301用于存储程序,所述处理器303在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的第一服务器602所执行的方法可以应用于处理器303中,或者由处理器303实现。

处理器303可能是一种集成电路芯片,具有信号的处理能力。上述的处理器303可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述外设接口304将各种输入/输入装置耦合至处理器303以及存储器301。在一些实施例中,外设接口304,处理器303以及存储控制器302可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。

输入输出单元305用于提供给用户输入数据实现用户与所述第一服务器602的交互。所述输入输出单元305可以是,但不限于,鼠标和键盘等。

请参阅图3,是本发明第二实施例提供的一种分布式订单处理方法的流程图。下面将对图3所示的具体流程进行详细阐述。

步骤S401,所述第一服务器获取订单信息。

其中,所述第一服务器接收客户端发送的订单信息。所述订单信息为多条。所述客户端为用户终端中所安装的应用程序。其中,所述订单信息包括产品信息、订单金额、收货人信息和邮费。

作为一种实施方式,当用户通过客户端进行下单后,所述客户端将用户的订单信息发送到所述第一服务器。例如,用户李某在客户端买了一件小商品,该小商品的名称为小小,该小商品的价格为20元,收货地址为地球村A组B号,收货人手机号为13288888888,该小商品包邮,李四的订单信息为:小小一件,订单金额为20,收货人信息为李四的收货地址与手机号,邮费为0元。客户端将生成的李四的所述订单信息发送到第一服务器。

步骤S402,所述第一服务器将所述订单信息发送到多个所述第二服务器中的任意一个所述第二服务器,以使所述第二服务器处理所述订单信息。

其中,可以是按照预设顺序进行分发,具体地,在本实施例中,所述第一服务器按照预设顺序依次向每个所述第二服务器发送一条订单信息;当所述第一服务器向每个所述第二服务器均发送了一条订单信息且所述订单信息还未分发完的情况下,所述第一服务器再次按照预设顺序向每个所述第二服务器分发一条订单信息,直到所有的订单信息发送完。

所述预设顺序是指为每个第二服务器在多个第二服务器中设置一个先后顺序,第一服务器能够按照每个第二服务器的先后顺序为每个第二服务器发送订单信息。

作为第一实施方式,预先为每个第二服务器设置一个先后顺序,例如,通过编号的方式为每个第二服务器进行编号,按照所编号的号数的大小按照由小到大进行排序。当所述第一服务器向每个所述第二服务器发送订单信息时,可以按照每个第二服务器的编号的顺序进行依次发送,当所述第一服务器向每个所述第二服务器均发送了一条订单信息且所述订单信息还未分发完的情况下,所述第一服务器再次按照编号的顺序向每个所述第二服务器分发一条订单信息,直到所有的订单信息发送完。此时,每个第二服务器所能处理的订单信息的数目相同。

例如,当前第二服务器为4个,为每个第二服务器进行编号,将4个第二服务器的编号分别设为1、2、3、4。即编号为1的代表4个第二服务器中的一个,以此类推,编号为4的代表4个第二服务器中的一个第二服务器,按照编号大小由小到大进行排序,此时4个第二服务器均相同,即每个第二服务器所能处理的订单信息的数量相同。当前第一服务器所接收的订单信息为100条,第一服务器按照第二服务器的编号的顺序进行分发订单信息,第一次按照第二服务器的编号顺序向每个第二服务器发送一条订单信息,当第一次分发完后,第一服务器中的订单信息还剩余96条,继续按照编号的顺序为每个第二服务器发送一条订单信息,直到100条订单信息发送完成。

在本实施例中,还可以是按照预设阀值的大小进行分发。具体地,获取每个所述第二服务器所能够处理所述订单信息的预设阀值;当每个所述第二服务器的预设阀值均大于或等于订单信息的总数量时,将所述订单信息发送到多个所述第二服务器中的任意一个所述第二服务器;当订单信息的总数量大于多个所述第二服务器对应的预设阀值中的其中一个预设阀值时,将所述订单信息依次向每个所述第二服务器发送一条订单信息,当任意一个所述第二服务器接收到的所述订单信息的数量等于所述第二服务器所对应的预设阀值时,停止向接收所述订单信息的数量等于所述第二服务器所对应的预设阀值的所述第二服务器发送订单信息。

其中,所述预设阀值是指每个第二服务器所能够处理的订单信息的数量。根据不同的第二服务器设置不同的预设阀值,即所述预设阀值是指根据第二服务器所能够处理的订单信息的数量的不同设定不同的预设阀值。

作为第二实施方式,获取每个第二服务器所能够处理所述订单信息的最大数量,将所述最大数量设置为每个第二服务器的阀值。根据每个第二服务器的阀值第一服务器将订单信息发送到每个第二服务器,以使每个第二服务器接收到的订单信息的数量低于该第二服务器的阀值。

例如,当前有6个第二服务器,其中每个第二服务器的阀值依次为10000、20000、30000、40000、45000和60000。当前第一服务器接收到的订单信息为一百万条,按照每个第二服务器的阀值进行发送订单信息,即为阀值为10000第二服务器的发送9999条订单信息或者是低于阀值的任意数目的订单信息,为阀值为20000的第二服务器发送19999条订单信息或者是低于阀值的任意数目的订单信息,以此类推,为阀值为60000的第二服务器发送59999条订单信息或者是低于阀值的任意数目的订单信息。当第一服务器向每个第二服务器都发送完订单信息后,当第一服务器接收到第二服务器处理订单信息的状态后,即第一服务器接收第二服务器返回的该第二服务器当前处理完的订单信息的数量,第一服务器按照每个第二服务器所处理完成后,每个第二服务器还能处理的最大订单信息的数量将剩余的订单信息再次按照每个第二服务器的阀值进行发送,当6个所述第二服务器中的任意一个第二服务器接收到的所述订单信息的数量等于所述第二服务器所对应的预设阀值时,停止向接收所述订单信息的数量等于所述第二服务器所对应的预设阀值的所述第二服务器发送订单信息。例如,当阈值为10000的第二服务器接收到的订单信息为10000条时,第一服务器停止向阈值为10000的第二服务器发送订单信息,直到阈值为10000的第二服务器能够重新接收第一服务器发送的订单信息时,第一服务器再次向阈值为10000的第二服务器发送订单信息,且不能超过第二服务器所能处理的范围,例如,阈值为10000的第二服务器第一次接收到第一服务器发送的10000条订单信息后,处理完9000条后,还剩余1000条,第二服务器返回一个阈值给第一服务器,第一服务器按照第二服务器返回的新的阈值发送相应地订单信息到第二服务器。

例如,当前有6个第二服务器,其中每个第二服务器的阀值依次为10000、20000、30000、40000、45000和60000。当前第一服务器接收到的订单信息为5000条,所述订单信息的总数小于6个第二服务器中的任意一个第二服务器的阀值,将所述订单信息发送到6个所述第二服务器中的任意一个所述第二服务器。

作为第三实施方式,可以根据每个第二服务器的处理订单的能力,为每个第二服务器设置权重值,第一服务器根据每个第二服务器的权重值的不同发送不同数目的订单信息到每个第二服务器。其中,发送给每个第二服务器的订单信息的数目等于第二服务器的权重值与第一服务器接收到的订单信息的数目的乘积。将所有的第二服务器的权重值相加等于100%。

例如,当前有3个第二服务器,每个第二服务器的权重分别为20%、30%和50%。所述第一服务器接收到的订单信息的数目为100000条,按照每个第二服务器的权重值,第一服务器依次为每个第二服务器发送相应地数目的订单信息,为权重为20%的第二服务器发送100000*20%=20000条订单信息,为权重为30%的第二服务器发送100000*30%=30000条订单信息,为权重为50%的第二服务器发送100000*50%=50000条订单信息。

作为第四实施方式,可以根据每个第二服务器的域名向每个第二服务器发送订单信息。具体地,获取每个第二服务器的域名,按照域名的指向,第一服务器将订单信息发送到与获取到的域名相应地的第二服务器。

请参阅图4,是本发明第三实施例提供的一种分布式订单处理方法的流程图。下面将对图4所示的具体流程进行详细阐述。

步骤S501,所述第一服务器获取订单信息。

其中,所述第一服务器接收客户端发送的订单信息。

步骤S502,所述第一服务器将所述订单信息发送到多个所述第二服务器中的任意一个所述第二服务器。

步骤S503,当所述订单信息所携带的信息与预设信息匹配时,所述第二服务器将所述订单信息的处理状态修改为未处理,并将所述订单信息存储到第一数据库,发送订单初步处理完成信息至客户端。

步骤S504,当所述订单信息所携带的产品数量小于或等于预设产品库存时,所述第二服务器将所述订单信息存储到第二数据库。

步骤S505,当所述第二服务器接收到所述客户端基于所述订单信息反馈的支付信息后,所述第二服务器修改所述订单信息存储在所述第一数据库中的处理状态。

步骤S506,发送订单处理完成消息至所述客户端。

其中,第二服务将订单处理完成后,发送处理完成通知信息到客户端。

请参照图5,图5为本发明第四实施例提供的一种分布式订单处理方法的时序图。第一服务器获取客户端发送的订单信息,所述客户端安装在用户终端上,第一服务器将获取到的订单信息发送到多个第二服务器,第二服务器接收到订单信息后,对订单信息进行处理,具体地,如步骤S503,当所述订单信息所携带的信息与预设信息匹配时,所述第二服务器将所述订单信息的处理状态修改为未处理,并将所述订单信息存储到第一数据库,并通过第一服务器发送初步处理结果到用户终端,当所述订单信息所携带的信息与预设信息不匹配时,所述第二服务器发送初步处理结果通过第一服务器发送到用户终端。第二服务器在返回订单初步处理结果后,对所述订单信息进行处理,具体的,如步骤S504,当所述订单信息所携带的产品数量小于或等于预设产品库存时,所述第二服务器将所述订单信息存储到第二数据库。如步骤S505,当所述第二服务器接收到所述客户端基于所述订单信息反馈的支付信息后,所述第二服务器修改所述订单信息存储在所述第一数据库中的处理状态。当用户终端获取订单处理结果时,即获取订单处理的最终结果时,第一服务器将用户终端发送的订单处理结果请求发送到第二服务器,第二服务器在接收到订单处理结果请求时,根据第二服务器所处理的订单信息的状态返回订单处理状态到用户终端。

请参阅图5,是本发明第五实施例提供一种分布式订单处理装置的结构框图。所述装置500包括数据获取模块510和数据处理模块520。

数据获取模块510,用于第一服务器获取订单信息。

数据处理模块520,用于所述第一服务器将所述订单信息发送到多个所述第二服务器中的任意一个所述第二服务器,以使所述第二服务器处理所述订单信息。

其中,所述数据处理模块520还包括数据处理子模块521。数据处理子模块521,用于所述第一服务器基于分发算法将所述订单信息发送到多个所述第二服务器中的任意一个所述第二服务器。

在本实施例中,所述订单信息为多条。其中,所述数据处理子模块521具体用于所述第一服务器按照预设顺序依次向每个所述第二服务器发送一条订单信息;当所述第一服务器向每个所述第二服务器均发送了一条订单信息且所述订单信息还未分发完的情况下,所述第一服务器再次按照预设顺序向每个所述第二服务器分发一条订单信息,直到所有的订单信息发送完。

在本实施例中,所述订单信息为多条。所述数据处理子模块521还用于获取每个所述第二服务器所容内所述订单信息的预设阀值;当每个所述第二服务器的预设阀值均大于或等于订单信息的总数量时,将所述订单信息发送到多个所述第二服务器中的任意一个所述第二服务器;当订单信息的总数量大于多个所述第二服务器对应的预设阀值中的其中一个预设阀值时,将所述订单信息依次向每个所述第二服务器发送一条订单信息,当任意一个所述第二服务器接收到的所述订单信息的数量等于所述第二服务器所对应的预设阀值时,停止向接收所述订单信息的数量等于所述第二服务器所对应的预设阀值的所述第二服务器发送订单信息。

综上所述,本发明提供一种分布式订单处理方法、装置及订单处理系统,该方法通过第一服务器获取客户端发送的订单信息,将所述订单信息发送到多个第二服务器中的任意一个第二服务器,从而使得第二服务器所处理的订单信息的数量位于该第二服务器所能处理的范围内,进而使得订单处理过程更加友好、快速以及安全。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

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