订单管理方法及系统、电子设备、存储介质与流程

文档序号:16668004发布日期:2019-01-18 23:23阅读:151来源:国知局
订单管理方法及系统、电子设备、存储介质与流程

本发明涉及互联网技术领域,特别涉及一种订单管理方法及系统、电子设备、存储介质。



背景技术:

因电子商务的便捷性,越来越多的消费者倾向于在电子商务上购物。订单系统是电子商务网站的核心之一。目前,订单系统一般采用分库分表设计,然而会存在以下问题:

(1)订单系统一次下单需要写很多表,例如订单表、订单详情表等,当高并发量的数据访问系统时,系统性能会下降,影响消费者下单的有效性;

(2)当分库分表数量不够会影响到系统性能,这时需要提前扩容订单表以解决该问题,但将造成用户下单变慢甚至无法下单;

(3)当系统中一台数据库出现问题或宕机,或当系统部署在多个机房时,其中一个机房不可用时,会导致下单失败或用户无法下单。

可见,在高并发访问量情形下,现有技术的订单系统存在因数据库性能下降、数据库宕机、多机房等引起的下单可靠性较差、系统稳定性欠佳的问题。



技术实现要素:

本发明要解决的技术问题是为了克服在高并发访问量情形下,现有技术的订单系统下单可靠性较差、系统稳定性欠佳的缺陷,提供一种订单管理方法及系统、电子设备、存储介质。

本发明是通过下述技术方案来解决上述技术问题:

一种订单管理方法,所述订单管理方法包括:

预设缓冲数据库;

对所述缓冲数据库执行写操作,将获取的订单数据写入所述缓冲数据库中;

将所述缓冲数据库中的订单数据同步至订单中心;

在接收到订单操作指令时,对所述订单中心的订单数据执行订单管理操作。

较佳地,所述缓冲数据库的数量为多个,每个缓冲数据库中至少有一张缓冲表;

将所述订单数据写入所述缓冲数据库中的步骤,具体包括:

轮询多个缓冲数据库中的缓冲表,确定目标缓冲表,将所述订单数据写入所述目标缓冲表。

较佳地,将获取的订单数据写入所述缓冲数据库中的步骤之前,还包括:

在接受到下单指令时,生成订单的订单号;根据所述订单号生成所述订单数据。

较佳地,将所述订单数据写入所述目标缓冲表的步骤之前,还包括:

根据所述订单号判断所述多个缓冲数据库中的缓冲表中是否已存储所述订单数据;

在判断为否时,执行将所述订单数据写入所述目标缓冲表的步骤。

较佳地,将所述订单数据写入所述缓冲数据库的步骤之后,还包括:

将所述订单数据存储至缓存数据库。

较佳地,所述订单管理方法还包括:

当所述订单中心中的订单数据变更时,更新所述缓存数据库。

较佳地,当所述缓冲数据库故障时,所述订单管理方法还包括:

将获取的订单数据直接存储至所述订单中心。

较佳地,将所述缓冲数据库中的订单数据同步至所述订单中心的步骤之后,还包括:

删除所述缓冲数据库中已同步至所述订单中心的订单数据。

一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的订单管理方法。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的订单管理方法的步骤。

一种订单管理系统,包括订单中心,所述订单管理系统包括:写模块、缓冲数据库、同步模块和操作模块;

所述写模块用于对所述缓冲数据库执行写操作,将获取的订单数据写入所述缓冲数据库中;

所述同步模块用于将所述缓冲数据库中的订单数据同步至所述订单中心;

所述操作模块用于在接收到订单操作指令时,对所述订单中心的订单数据执行订单管理操作。

较佳地,所述缓冲数据库的数量为多个,每个缓冲数据库中至少有一张缓冲表;

所述写模块具体包括:同步单元;

所述同步单元用于轮询多个缓冲数据库中的缓冲表,确定目标缓冲表,并将所述订单数据写入所述目标缓冲表。

较佳地,所述订单管理系统还包括:订单号生成模块和下单模块;

所述订单号生成模块用于在接受到下单指令时,生成订单的订单号;

所述下单模块用于根据所述订单号生成所述订单数据。

较佳地,所述写模块还包括:判断单元;

所述判断单元用于根据所述订单号判断所述多个缓冲数据库中的缓冲表中是否已存储所述订单数据;

在判断为否时,所述判断单元还用于调用所述同步单元。

较佳地,所述订单管理系统还包括:缓存模块;

所述缓存模块用于将所述订单数据存储至所述缓存数据库。

较佳地,所述订单管理系统还包括:更新模块;

所述更新模块用于在所述订单中心中的订单数据变更时,更新所述缓存数据库。

较佳地,所述写模块还包括:存储单元;

所述存储单元用于在所述缓冲数据库故障时,将获取的订单数据直接存储至所述订单中心。

较佳地,所述订单管理系统还包括:删除模块;

所述同步模块还用于将所述订单数据同步至所述订单中心后,调用所述删除模块;

所述删除模块用于删除所述缓冲数据库中已同步至所述订单中心的订单数据。

本发明的积极进步效果在于:本发明将订单数据存储至缓冲数据库,然后将缓冲数据库中的数据迅速地同步到订单中心,用户下单操作只在缓冲数据库中进行,管理员的订单管理操作只在订单中心进行,实现将用户下单逻辑和管理员订单操作逻辑分开,从而管理员操作订单表不会影响到缓冲表,在高并发访问量情形下,依然能确保用户成功下单完成支付。

附图说明

图1为本发明实施例1的订单管理方法的第一流程图。

图2为本发明实施例1的订单管理方法的第二流程图。

图3为本发明实施例2的电子设备的硬件结构示意图。

图4为本发明实施例4的订单管理系统的模块示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

如图1所示,本实施例的订单管理方法包括以下步骤:

步骤100、预设缓冲数据库。

其中,缓冲数据库的数量可根据需求设置多个,每个缓冲数据库中至少有一张缓冲表。当系统性能遇到瓶颈时,可水平扩容缓冲表来支持更多的下单操作。该缓冲数据库部署在缓冲服务器上。

步骤110、在接受到下单指令时,生成订单数据。

具体的,用户在结算页提交订单生成下单指令,订单号生成服务生成该订单的订单号,结算服务会进行一些业务处理,下单服务根据该订单号生成并提交订单数据。其中,订单数据包括订单号、订单详情信息等,订单详情信息例如用户信息、订单创建时间、订单状态等。

步骤120、获取订单数据。

步骤130、对缓冲数据库执行写操作,将订单数据写入缓冲数据库中。

缓冲数据库中存储的订单数据供用户下单操作使用。

步骤140、将缓冲数据库中的订单数据同步至订单中心。

从而,订单中心可根据订单数据生成订单表,供后续订单进入生产、配送等订单管理操作使用。

步骤150、在接收到订单操作指令时,对订单中心的订单数据执行订单管理操作。

本实施例中,通过使用缓冲数据库,将订单数据放入缓冲数据库,然后将缓冲数据库中的数据迅速地同步到订单中心,用户下单操作只在缓冲数据库中进行,管理员的订单管理操作只在订单中心进行,实现将订单系统中的用户下单逻辑和管理员订单操作逻辑分开,从而管理员操作订单表不会影响到缓冲数据库,在高并发访问量情形下,依然能确保用户成功下单完成支付。

本实施例中,步骤130之后,还包括:

步骤131、将订单数据存储至缓存数据库。

该缓存数据库部署在缓存服务器上。

步骤131也即在将订单数据写缓冲表成功后,将订单数据写入到缓存,供前端用户查看当前订单。

当订单中心中的订单数据变更时,订单管理方法还包括:更新缓存数据库的步骤。也即如果订单中心的数据有变更,则实时更新缓存的订单数据。其中,订单数据变更包括订单数据的增加、订单数据的状态变更等。

本实施例中,当缓冲数据库故障时,订单管理方法还包括:

步骤130’、将步骤120获取的订单数据直接存储至订单中心。

本实施例中,若缓冲数据库故障,订单数据不能写入缓冲表,则将订单数据直接降级写入订单中心,确保在缓冲数据库故障时用户依然能可靠下单。需要说明的是,若缓冲表所在的宿主机器(缓冲服务器)出现硬件故障,也只是影响部分订单的同步,不影响用户下单、支付(因为缓存里有一份订单数据)。

本实施例中如图2所示,步骤130具体包括:

步骤130-1、根据订单号判断多个缓冲数据库中的缓冲表中是否存储有该订单数据。

若判断为是,说明该订单数据已经写入缓冲表,则返回步骤120。

若判断为否,说明该订单数据未写入缓冲表,则执行步骤130-2。

步骤130-2、轮询多个缓冲数据库中的缓冲表,确定目标缓冲表,将订单数据写入目标缓冲表。

也即从多张缓冲表中依次选择一张缓冲表,尝试将订单数据写入当前选择的该张缓冲表,直至数据写入成功,数据写入成功的缓冲表也即目标缓冲表。

其中,缓冲表可包括以下表头:

订单号、订单json(一种数据交换格式)串、订单状态、创建时间、处理状态、重试次数、workerip等。

当订单数据成功地同步至订单中心,则可将缓冲数据库中的该数据删除,也即步骤140之后执行步骤160。

步骤160、删除缓冲数据库中已同步至订单中心的订单数据。

本实施例的订单管理方法,实现了一种高容错性、可水平扩展的通用订单下单处理策略,解决因数据库性能下降、数据库宕机、多机房等引起的下单成功率低,可靠性差等问题。

实施例2

图3为本发明实施例提供的一种电子设备的结构示意图,示出了适于用来实现本发明实施方式的示例性电子设备30的框图。图3显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图3所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。

总线33包括数据总线、地址总线和控制总线。

存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存存储器322,还可以进一步包括只读存储器(rom)323。

存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的订单管理方法。

电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的电子设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与模型生成的电子设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的电子设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

实施例3

本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1所提供的订单管理方法的步骤。

其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。

在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1所提供的对象销量的预测方法中的步骤。

其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。

实施例4

如图4所示,本实施例的订单管理系统包括:订单号生成模块41、下单模块42、写模块43、同步模块44、缓冲数据库45、订单中心46、缓存模块47、删除模块48、更新模块49、缓存数据库410和操作模块411。其中,缓冲数据库的数量可设置多个,每个缓冲数据库中至少有一张缓冲表。当系统性能遇到瓶颈时,可水平扩容缓冲表来支持更多的下单操作。该缓冲数据库部署在缓冲服务器上。

订单号生成模块41用于在接受到下单指令时,生成订单的订单号。具体的,用户在结算页提交订单生成结算指令,订单号生成模块41则生成该订单的订单号,结算服务会进行一些业务处理。

下单模块42用于根据订单号生成订单数据。其中,订单数据包括订单号、订单详情信息等,订单详情信息例如用户信息、订单创建时间、订单状态等。

写模块43用于对缓冲数据库执行写操作,将获取的订单数据写入缓冲数据库45。缓冲数据库中存储的订单数据供用户下单操作使用。

具体的,写模块包括获取单元431、判断单元432、同步单元433和存储单元434。

获取单元431用于获取下单模块42生成的订单数据。

判断单元432用于根据订单号判断多个缓冲数据库中的缓冲表中是否已存储订单数据。若判断为否,说明该订单数据未写入缓冲表,判断单元432调用同步单元433。若判断为是,说明该订单数据已写入缓冲表,判断单元432调用获取单元431。

同步单元433用于轮询多个缓冲数据库中的缓冲表,确定目标缓冲表,并将订单数据写入目标缓冲表。也即从多张缓冲表中依次选择一张缓冲表,尝试将订单数据写入当前选择的该张缓冲表,直至数据写入成功,数据写入成功的缓冲表也即目标缓冲表。其中,同步单元可通过建立同步worker(任务)实现。

其中,缓冲表可包括以下表头:订单号、订单json(一种数据交换格式)串、订单状态、创建时间、处理状态、重试次数、workerip等。

本实施例中,若缓冲数据库故障,同步单元433无法将订单数据写入目标缓冲表,则同步单元433调用存储单元434将获取单元431获取的订单数据直接存储至订单中心,以确保在缓冲数据库故障时,用户依然能可靠下单。需要说明的是,若缓冲表所在的宿主机器(缓冲服务器)出现硬件故障,也只是影响部分订单的同步,不影响用户下单、支付(因为缓存里有一份订单数据)。

同步模块44实时将缓冲数据库中的订单数据同步至订单中心。从而,订单中心可根据订单数据生成订单表,供后续订单进入生产、配送等订单管理操作使用。同步模块使用disruptor架构实现。

操作模块411用于在接收到订单操作指令时,对订单中心的订单数据执行订单管理操作

本实施例中,通过使用缓冲表,将订单数据放入缓冲表,然后将缓冲表中的数据迅速地同步到订单中心,实现将订单系统中的下单逻辑和操作订单逻辑分开,用户下单只操作缓冲表,管理员管理操作订单只操作订单中心的订单表,从而操作订单表不会影响到缓冲表,在高并发访问量情形下,依然能确保用户成功下单完成支付。

本实施例中,同步模块44同步订单中心的数据后还调用缓存模块47,以将订单数据存储至缓存数据库410,供前端用户查看当前订单。缓存数据库部署于缓存服务器上。

本实施例中,同步模块44同步订单中心的数据后还调用删除模块48,以删除缓冲数据库45中的已同步至订单中心的订单数据。

本实施例中,当订单中心中的订单数据变更时,更新模块49实时更新缓存数据库410。也即如果订单中心的数据有变更则实时更新缓存的订单数据。其中,订单数据变更包括订单数据的增加、订单数据的状态变更等。

本实施例的订单管理系统,实现了一种高容错性、可水平扩展的通用订单下单处理策略,解决因数据库性能下降、数据库宕机、多机房等引起的下单成功率低,可靠性差等问题。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

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