一种业务调度方法、装置、设备和存储介质与流程

文档序号:17187740发布日期:2019-03-22 21:32阅读:152来源:国知局
一种业务调度方法、装置、设备和存储介质与流程

本发明实施例涉及计算机技术领域,尤其涉及一种业务调度方法、装置、设备和存储介质。



背景技术:

系统在异地多活的运行场景下,即系统的所有业务分布在两个及其以上的机房中进行业务处理,由于网络的不稳定与延迟,以及用户访问的不可控性,容易造成对数据的读写操作顺序错误,而会带来数据一致性问题,进一步影响整个业务逻辑。

通常解决方式有两种:一是采用单一写入点的方式,将业务对应的业务数据写入一个机房中,能够保持数据一致性,且访问较为高效,但抗风险能力较弱,当写入点不可用时,会导致整个系统不可用;二是采用多地强一致方案,其中,多地强一致方案一种跨机房的读写分离机制,所有的写操作被定向到一个主机房进行,读操作可以在每个机房的副数据库执行,也可以绑定到主机房进行,能够保持数据的一致性,有较好抗风险能力,但性能会有较大降低,成为系统瓶颈。



技术实现要素:

本发明提供一种业务调度方法、装置、设备和存储介质,以实现在保持业务数据一致性的前提下,保证业务数据的抗风险能力,并增加业务处理的性能的技术效果。

第一方面,本发明实施例提供了一种业务调度方法,该方法包括:

接收业务订单的处理请求;

响应所述处理请求,将处理过所述业务订单的候选机房确定为目标机房;

将所述业务订单调度至所述目标机房进行业务处理;

根据所述业务处理的结果更新针对所述业务订单的业务数据,其中,每个所述候选机房均存储有所述业务数据。

进一步的,在接收业务订单的处理请求之后,还包括:

根据所述处理请求确定所述业务订单为首次处理,则将接收所述处理请求的候选机房作为目标机房。

进一步的,在根据所述处理请求确定所述业务订单为首次处理,则将接收所述处理请求的候选机房作为目标机房之后,包括:

确定接收所述处理请求的候选机房对应的机房编码;

根据所述机房编码生成所述业务订单的订单标识号。

进一步的,响应所述处理请求,将处理过所述业务订单的候选机房确定为目标机房,包括:

根据所述处理请求获取所述业务订单的订单标识号,所述订单标识号在首次处理所述业务订单时生成;

从所述订单标识号的指定位置中读取机房编码;

根据所述机房编码与候选机房的对应关系,从所述候选机房中确定处理过所述业务订单的目标机房。

进一步的,将所述业务订单调度至所述目标机房进行业务处理,包括:

根据所述业务订单的业务状态确定目标业务类型;

将所述业务订单调度至所述目标机房,以进行所述目标业务类型对应的业务处理。

进一步的,根据所述业务处理的结果更新针对所述业务订单的业务数据,包括:

根据业务处理的结果更新所述目标机房中关于所述业务订单的业务数据;

将所述业务数据同步至除所述目标机房之外的所述候选机房。

进一步的,在响应所述处理请求,将处理过所述业务订单的候选机房确定为目标机房之后,还包括:

在所述目标机房发生故障时,选取一个除所述目标机房之外的所述候选机房作为临时机房;

将所述业务订单调度至所述临时机房进行业务处理,以更新针对所述业务订单的业务数据。

第二方面,本发明实施例还提供了一种业务调度装置,该装置包括:

处理请求接收模块,用于接收业务订单的处理请求;

目标机房确定模块,用于响应所述处理请求,将处理过所述业务订单的候选机房确定为目标机房;

业务处理模块,用于将所述业务订单调度至所述目标机房进行业务处理;

业务数据更新模块,用于根据所述业务处理的结果更新针对所述业务订单的业务数据,其中,每个所述候选机房均存储有所述业务数据。

第三方面,本发明实施例还提供了一种业务调度设备,该设备包括:存储器以及一个或多个处理器;

所述存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一所述的业务调度方法。

第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面中任一所述的业务调度方法。

本发明实施例通过接收业务订单的处理请求;响应所述处理请求,将处理过所述业务订单的候选机房确定为目标机房;将所述业务订单调度至所述目标机房进行业务处理;根据所述业务处理的结果更新针对所述业务订单的业务数据,其中,每个所述候选机房均存储有所述业务数据,由此,一方面,不同于将同一业务订单调度到不同的候选机房,而是确定以唯一的目标机房进行业务处理,解决了多机房部署中的业务一致性问题,保证业务逻辑的正确性。另一方面,不同于单一写入点的方案中将业务对应的业务数据只是单独写入一个机房中,也不同于强一致性的方案中采用的跨机房的读写分离机制,本实施例中的所有候选机房均保存有业务订单所产生的数据,且读写均在目标机房中实现,再同步至其他候选机房,实现在保持业务数据一致性的前提下,保证业务数据的抗风险能力,同于由于避免了跨机房读写数据库所带来的时延,实现了增加业务处理的性能的技术效果。

附图说明

图1a为本发明实施例一提供的一种业务调度方法的流程图;

图1b为本发明实施例一提供的一种多机房部署的示意图;

图2为本发明实施例二提供的一种业务调度方法的流程图;

图3为本发明实施例三提供的一种业务调度装置的结构示意图;

图4为本发明实施例四提供的一种业务调度设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1a为本发明实施例一提供的一种业务调度方法的流程图,图1b为本发明实施例一提供的一种多机房部署的示意图。

本实施例可适用于异地多活的情况,异地多活采用多机房部署的方式实现,即采用二个及其以上的机房对业务进行部署。具体的,将业务扩展到多个机房,当一个机房出现故障时,其他机房仍然可以继续正常的业务处理,从而避免了整个业务系统级别的故障,实现自然扩展和高可用的技术效果。但多机房部署会由于网络的不稳定与延迟,以及用户访问的不可控性,会带来数据一致性问题。具体的,一般将业务扩展到多个机房,在对业务进行业务处理时,通过多个机房协作完成该业务。进一步的,业务所产生的业务数据也分布在多个机房中,在业务处理的过程中需要跨机房地对业务数据进行增删改操作。需要注意的是,网络的不稳定与延迟,以及用户访问的不可控性,都会影响对业务数据进行增删改操作的顺序,从而使得业务逻辑出现错误。更进一步的,虽然可以采用多地强一致方案,能够保持数据的一致性,有较好抗风险能力。但由于多地强一致是采用多个机房共用一个业务数据库来保证数据的一致性,由于网络延迟和数据读写耗时的原因,性能会有较大降低,成为系统瓶颈。

具体的,本实施例适用于在接收业务订单时,将业务订单调度到目标机房进行业务处理,保证业务处理的高性能,以及业务处理所产生的业务数据的一致性和安全性。进一步的,本实施例对应用场景不作限定,凡是根据业务订单的默认或历史处理情况确定目标机房的应用场景均可适用。其中,本实施例将以历史处理情况是处理过业务订单的机房为例进行说明。

该方法可以由业务调度设备来执行。本实施例对业务调度设备不作限定,本实施例以业务调度设备是设置在各个机房中的服务器为例进行详细说明,该服务器可以是独立服务器或集群服务器。

具体的,参照图1b,在进行多机房部署时,整个业务系统中设置有多个候选机房,其中,候选机房是可以进行业务处理的机房。进一步的,候选机房中设置有调度器、业务逻辑模块、注册中心和数据库;其中,调度器用于将业务订单调度到目标机房进行业务处理;业务逻辑模块用于对调度过来的业务订单进行实际的业务处理;注册中心则设置有整个业务系统的业务逻辑模块信息,该业务逻辑模块信息包括每个候选机房中业务逻辑模块能够处理的业务类型;需要注意的是,每个候选机房中的数据库之间同步存储有业务系统所产生的业务数据。

进一步的,参照图1a,结合图1b所述的多机房部署方式,该业务调度方法具体包括如下步骤:

s110、接收业务订单的处理请求。

本实施例中,业务以业务订单的方式进行管理。一个业务订单的生命周期包括:生成订单、处理订单和结束订单等业务状态。进一步的,处理请求是针对不同的业务状态发出的请求。如当业务订单的业务状态为生成订单,则该处理请求用于请求生成该业务订单;又如当业务订单的业务状态为处理订单,则该处理请求用于请求处理该业务订单。在接收到业务订单请求时,将根据业务状态调度相应的业务逻辑模块对该业务订单进行业务处理。

需要注意的是,根据业务的不同,业务订单对应的具体业务状态有所不同。

以直播平台中的充值业务为例进行说明,业务订单对应的业务状态包括生成充值订单、处理充值订单(又分为未支付、支付失败和已支付等)、结束充值订单(又分为取消订单和完成订单等)。

以上是对响应处理请求确定业务状态的说明,进一步的,本实施例将对如何根据处理请求为业务订单分配目标机房和业务逻辑模块进行详细说明。

s120、响应所述处理请求,将处理过所述业务订单的候选机房确定为目标机房。

本实施例中,响应所述处理请求,以根据所述业务订单的业务状态进行业务处理。本实施例为了保证数据的一致性,需要保证同一个业务订单(处于业务订单生命周期中的不同业务状态),都在同一候选机房进行业务处理,所以进一步的,本实施例将处理过所述业务订单的候选机房确定为目标机房。

具体的,参考图1b,多个候选机房中都设置有注册中心,注册中心中设置有业务系统中所有的业务逻辑模块信息。进一步的,在接收业务订单的处理请求后,调度器将处理过所述业务订单的候选机房确定为目标机房,进一步的,调度器监控注册中心中的业务逻辑模块信息,根据所述业务状态与业务逻辑模块信息的匹配,确定所述业务订单在所述目标机房中对应的业务逻辑模块。

本实施例对如何确定处理过所述业务订单的候选机房不作限定。

在一实施例中,在数据库中存储所有业务订单对应的候选机房,并在接收到业务订单的处理请求时,在数据库中进行搜索确定处理过所述业务订单的候选机房。

在一实施例中,所述业务订单设置处理过所述业务订单的机房信息,根据该机房信息即可在候选机房确定目标机房。本实施例对机房信息的具体形式不作限定,该机房信息可以是设置在业务订单中的备注,也可以是拼接在业务订单的订单流水号中。

s130、将所述业务订单调度至所述目标机房进行业务处理。

本实施例中,目标机房中设置有业务逻辑模块,将所述业务订单调度至所述目标机房的业务逻辑模块进行业务处理,所述业务逻辑模块根据业务状态确定。

具体的,参考图1b,可以通过调度器将所述业务订单调度至所述目标机房的业务逻辑模块中进行业务处理。

本实施例将以直播平台中的充值业务为例对业务处理进行说明,用户在通过直播平台的网站发出充值请求时,进入生成订单的业务状态。具体的,直播平台的后台服务器接收关于生成订单的处理请求,以生成与该充值请求对应的业务订单,并将该业务订单的信息展示给用户。用户针对所述业务订单发出支付操作时,进入处理订单的业务状态,具体的,直播平台的后台服务器接收关于处理订单的业务请求,以按照用户的支付操作所对应的支付方式对用户的直播账户充值。在处理订单的业务状态中还可以进一步包括支付状态(已支付、未支付和支付失败等)。用户取消业务订单或完成业务订单,则进入结束订单的业务状态,直播平台的后台服务器接收关于结束订单的业务请求,以对取消业务订单或完成业务订单进行分别处理。

s140、根据所述业务处理的结果更新针对所述业务订单的业务数据,其中,每个所述候选机房均存储有所述业务数据。

本实施例中,业务数据为业务订单在生命周期中不同业务状态所产生的数据。如上述的充值业务中,业务数据可以是订单的支付状态和充值金额等。

进一步的,本实施例中,接收业务订单的处理请求的候选机房为本机房,更新业务订单的业务数据有两种情况:第一、本机房是目标机房,则先更新本机房的业务数据,再根据更新的业务数据更新除本机房外的候选机房的业务数据;第二、本机房不是目标机房,则从目标机房更新业务数据,再根据更新的业务数据更新除目标机房外的候选机房的业务数据。

为了提高业务数据的抗风险能力和业务处理的性能,本实施例将针对业务订单的业务处理所产生的业务数据存储在每个候选机房中的数据库中。一方面,当一个候选机房中的数据库损坏时,由于其他的候选机房中的数据库同样存在完整的业务数据,可以随时进行调用,或者进行业务数据的恢复,从而提高了业务数据的抗风险能力。另一方面,由于每个候选机房中的数据库存在完整的业务数据,在目标机房对业务订单进行业务处理时,可以直接更新本地的数据库中的业务数据,从而避免了跨机房读写数据库所带来的时延,该时延包括数据库读写时延和网络传输时延。

本发明实施例通过接收业务订单的处理请求;响应所述处理请求,将处理过所述业务订单的候选机房确定为目标机房;将所述业务订单调度至所述目标机房进行业务处理;根据所述业务处理的结果更新针对所述业务订单的业务数据,其中,每个所述候选机房均存储有所述业务数据,由此,一方面,不同于将同一业务订单调度到不同的候选机房,而是确定以唯一的目标机房进行业务处理,解决了多机房部署中的业务一致性问题,保证业务逻辑的正确性。另一方面,不同于单一写入点的方案中将业务对应的业务数据只是单独写入一个机房中,也不同于强一致性的方案中采用的跨机房的读写分离机制,本实施例中的所有候选机房均保存有业务订单所产生的数据,且读写均在目标机房中实现,再同步至其他候选机房,实现在保持业务数据一致性的前提下,保证业务数据的抗风险能力,同于由于避免了跨机房读写数据库所带来的时延,实现了增加业务处理的性能的技术效果。

实施例二

图2为本发明实施例二提供的一种业务调度方法的流程图。

本实施例在上述实施例的基础上进行细化,通过使用订单标识号确定业务订单对应的目标机房,参照图2,该业务调度方法具体包括如下步骤:

s210、接收业务订单的处理请求。

s220、根据所述处理请求获取所述业务订单的订单标识号,所述订单标识号在首次处理所述业务订单时生成。

本实施例中,订单标识号用于唯一标识业务订单。具体的,在处理请求中携带订单标识号,可以唯一确定该业务订单。进一步的,可以通过查询该订单标识号获取业务订单的所有业务数据。

需要注意的是,对于关于生成订单的业务请求,由于是首次处理,该业务订单还未生成,业务请求中未携带订单标识号。本实施例在将在首次处理所述业务订单时生成订单标识号。

进一步的,本实施例对订单标识号在首次处理所述业务订单时生成的具体实现方式不作限定。本实施例通过举例进行详细说明。

可选的,在执行步骤s210后,根据所述处理请求确定所述业务订单为首次处理,则将接收所述处理请求的候选机房作为目标机房,由此,该业务订单与目标机房进行绑定。也就是说,在该业务订单的整个生命周期都在该目标机房中进行业务处理。

进一步的,在根据所述处理请求确定所述业务订单为首次处理,则将接收所述处理请求的候选机房作为目标机房之后,可以通过确定接收所述处理请求的候选机房对应的机房编码;根据所述机房编码生成所述业务订单的订单标识号。其中,候选机房设置有唯一对应的机房编码。通过根据该机房编码生成订单标识号,使得通过该订单标识号可以确定机房编码对应的候选机房。

本实施例对如何根据所述机房编码生成所述业务订单的订单标识号不作限定,在一实施例中,所述订单标识号为机房编码和业务流水编码的拼接,所述机房编码和业务流水编码为字母和/或数字的组合。

在一实施例中,订单标识号采用字符拼接的形式,拼接形式可灵活定制,机房编码可作为前缀、后缀或是中缀。如在深圳机房生成的定订单标识号表示为:zh-s1-000001,zh为机房编码,s1为业务编码,000001为订单流水编码。其中,由于一个业务系统中可以实现不同的业务,业务编码可以用于区分不同的业务,方便进行业务的统计和管理。

在一实施例中,订单标识号采用数值形式,可以采用long或是int的数值类型。不同的数值类型,订单标识号的位数不同,如long为64位,int为8位。选取订单标识号中的固定连续的数据位置存储机房编码。例如,采用long数值类型作为订单标识号,订单标识号的第1位始终为0,保证订单标识号为正数,第2到第4位为机房编码,其余60位为业务编码和订单流水编码。如机房编码001代表深圳机房,则由深圳机房进行业务处理的业务订单的订单标识号应该是0001……6846977。

s230、从所述订单标识号的指定位置中读取机房编码。

本实施例中,由于所述订单标识号为机房编码和业务流水编码的拼接,可以根据在首次处理所述业务订单时生成订单标识号的拼接规则,从订单标识号的指定位置中读取机房编码。

示例性的,以上述实施例中的订单标识号sz-s1-000001为例进行说明,则sz为机房编码,s1为业务编码,000001为订单流水编码。

s240、根据所述机房编码与候选机房的对应关系,从所述候选机房中确定处理过所述业务订单的目标机房。

本实施例中,候选机房与机房编码一一对应,确定机房编码,即可确定候选机房。该对应关系可以存储在数据库或配置文件中,在需确定机房编码对应的候选机房时,对数据库或配置文件进行读取获得。

s250、根据所述业务订单的业务状态确定目标业务类型。

本实施例中,一个业务订单的生命周期包括:生成订单、处理订单和结束订单等业务状态。当然,根据业务的不同,业务订单对应的具体业务状态有所不同。以直播平台中的充值业务为例进行说明,业务订单对应的业务状态包括生成充值订单、处理充值订单和结束充值订单等。

进一步的,由于每个业务状态具有不同的业务类型,业务类型是对业务状态的进一步细分。如处理充值订单又分为未支付、支付失败和已支付等业务类型;结束充值订单又分为取消订单和完成订单等业务类型。正在处理的业务订单的业务状态对应的业务类型为目标业务类型。

s260、将所述业务订单调度至所述目标机房,以进行所述目标业务类型对应的业务处理。

本实施例中,目标机房中设置有业务逻辑模块,将所述业务订单调度至所述目标机房的业务逻辑模块进行业务处理,所述业务逻辑模块根据业务状态确定。具体的,参考图1b,可以通过调度器将所述业务订单调度至所述目标机房的业务逻辑模块中进行业务处理。

s270、根据业务处理的结果更新所述目标机房中关于所述业务订单的业务数据。

本实施例中,业务数据为业务订单在生命周期中不同业务状态所产生的数据。如上述的充值业务中,业务数据可以是订单的支付状态和充值金额等。目标机房在对业务订单进行业务处理时,实时将产生的业务数据更新到目标机房的数据库中。

s280、将所述业务数据同步至除所述目标机房之外的所述候选机房。

本实施例中,参照图1b,在目标机房对业务订单的处理时,实时将产生的业务数据更新到目标机房的数据库中,在目标机房完成对业务订单的处理时,将目标机房中的业务数据同步更新至除所述目标机房之外的所述候选机房。通过先更新目标机房中的关于所述业务订单的业务数据,可以保证对业务数据的读写操作都在目标机房中进行,避免跨机房读写数据库带来的时延,保证对业务订单处理的实时性,节省用户的等待时间。之后,再通过将目标机房更新的业务数据同步至除所述目标机房之外的所述候选机房,增加业务数据的抗风险能力。

具体的,在一实施例中,在所述目标机房发生故障时,选取一个除所述目标机房之外的所述候选机房作为临时机房;将所述业务订单调度至所述临时机房进行业务处理,以更新针对所述业务订单的业务数据,以保证一个候选机房中的数据库损坏时,由于其他的候选机房中的数据库同样存在完整的业务数据,可以随时进行调用,或者进行业务数据的恢复,从而提高了业务数据的抗风险能力。

本实施例的技术方案,通过接收业务订单的处理请求;根据所述处理请求获取所述业务订单的订单标识号,所述订单标识号在首次处理所述业务订单时生成;从所述订单标识号的指定位置中读取机房编码;根据所述机房编码与候选机房的对应关系,从所述候选机房中确定处理过所述业务订单的目标机房;根据所述业务订单的业务状态确定目标业务类型;将所述业务订单调度至所述目标机房,以进行所述目标业务类型对应的业务处理;根据业务处理的结果更新所述目标机房中关于所述业务订单的业务数据;将所述业务数据同步至除所述目标机房之外的所述候选机房,由此,一方面,不同于将同一业务订单调度到不同的候选机房,而是根据订单编号确定以唯一的目标机房进行业务处理,解决了多机房部署中的业务一致性问题,保证业务逻辑的正确性。另一方面,不同于单一写入点的方案中将业务对应的业务数据只是单独写入一个机房中,也不同于强一致性的方案中采用的跨机房的读写分离机制,本实施例中的所有候选机房均保存有业务订单所产生的数据,且读写均在目标机房中实现,再同步至其他候选机房,实现在保持业务数据一致性的前提下,保证业务数据的抗风险能力,同于由于避免了跨机房读写数据库所带来的时延,实现了增加业务处理的性能的技术效果。进一步的,订单标识号为机房编码和业务流水编码的拼接,可以实现根据订单标识号确定目标机房,具有实现简单的效果,而且增加确定目标机房的速度,从而增加对业务订单的处理的响应速度。

实施例三

图3为本发明实施例三提供的一种业务调度装置的结构示意图。

本实施例可适用于异地多活的情况,异地多活采用多机房部署的方式实现,具体的,将业务扩展到多个机房,当一个机房出现故障时,其他机房仍然可以继续正常的业务处理,从而避免了整个业务系统级别的故障,实现自然扩展和高可用的技术效果。但多机房部署会由于网络的不稳定与延迟,以及用户访问的不可控性,会带来数据一致性问题。具体的,将业务扩展到多个机房,在对业务进行业务处理时,需要多个机房协作才能够完成该业务。进一步的,业务所产生的业务数据也分布在多个机房中,在业务处理的过程中需要跨机房地对业务数据进行增删改操作。需要注意的是,网络的不稳定与延迟,以及用户访问的不可控性,都会影响对业务数据进行增删改操作的顺序,从而使得业务逻辑出现错误。更进一步的,虽然可以采用多地强一致方案,能够保持数据的一致性,有较好抗风险能力。但由于多地强一致是采用多个机房共用一个业务数据存储来保证数据的一致性,由于网络延迟和数据读写耗时的原因,性能会有较大降低,成为系统瓶颈。

具体的,本实施例适用于在接收业务订单时,将业务订单调度到目标机房进行业务处理,保证业务处理的高性能,以及业务处理所产生的业务数据的一致性和安全性。进一步的,本实施例对应用场景不作限定,凡是根据业务订单的历史处理情况确定目标机房的应用场景均可适用。其中,本实施例将以历史处理情况是处理过业务订单的机房为例进行说明。

该装置可以集成于业务调度设备中。本实施例对业务调度设备不作限定,本实施例以业务调度设备是设置在各个机房中的服务器为例进行详细说明,该服务器可以是独立服务器或集群服务器,可以是实体服务器或是云服务器。

具体的,参照图1b,在进行多机房部署时,整个业务系统中设置有多个候选机房,其中,候选机房是可以进行业务处理的机房。进一步的,候选机房中设置有调度器、业务逻辑模块、注册中心和数据库;其中,调度器用于将业务订单调度到目标机房进行业务处理;业务逻辑模块用于对调度过来的业务订单进行实际的业务处理;注册中心则设置有整个业务系统的业务逻辑模块信息,该业务逻辑模块信息包括每个候选机房中业务逻辑模块能够处理的业务类型;需要注意的是,每个候选机房中的数据库之间同步存储有业务系统所产生的业务数据。

进一步的,参照图3,结合图1b所述的多机房部署方式,该业务调度装置具体包括如下结构:处理请求接收模块310、目标机房确定模块320、业务处理模块330和业务数据更新模块340。

处理请求接收模块310,用于接收业务订单的处理请求。

目标机房确定模块320,用于响应所述处理请求,将处理过所述业务订单的候选机房确定为目标机房。

业务处理模块330,用于将所述业务订单调度至所述目标机房进行业务处理。

业务数据更新模块340,用于根据所述业务处理的结果更新针对所述业务订单的业务数据,其中,每个所述候选机房均存储有所述业务数据。

本发明实施例通过接收业务订单的处理请求;响应所述处理请求,将处理过所述业务订单的候选机房确定为目标机房;将所述业务订单调度至所述目标机房进行业务处理;根据所述业务处理的结果更新针对所述业务订单的业务数据,其中,每个所述候选机房均存储有所述业务数据,由此,一方面,不同于将同一业务订单调度到不同的候选机房,而是确定以唯一的目标机房进行业务处理,解决了多机房部署中的业务一致性问题,保证业务逻辑的正确性。另一方面,不同于单一写入点的方案中将业务对应的业务数据只是单独写入一个机房中,也不同于强一致性的方案中采用的跨机房的读写分离机制,本实施例中的所有候选机房均保存有业务订单所产生的数据,且读写均在目标机房中实现,再同步至其他候选机房,实现在保持业务数据一致性的前提下,保证业务数据的抗风险能力,同于由于避免了跨机房读写数据库所带来的时延,实现了增加业务处理的性能的技术效果。

在上述实施例的基础上,所述装置还包括:

首次处理模块,用于根据所述处理请求确定所述业务订单为首次处理,则将接收所述处理请求的候选机房作为目标机房。

在上述实施例的基础上,所述装置还包括:

机房编码确定模块,用于在根据所述处理请求确定所述业务订单为首次处理,则将接收所述处理请求的候选机房作为目标机房之后,确定接收所述处理请求的候选机房对应的机房编码。

订单标识号生成模块,用于根据所述机房编码生成所述业务订单的订单标识号。

在上述实施例的基础上,所述目标机房确定模块320,包括:

订单标识号获取单元,用于根据所述处理请求获取所述业务订单的订单标识号,所述订单标识号在首次处理所述业务订单时生成。

机房编码读取单元,用于从所述订单标识号的指定位置中读取机房编码。

目标机房确定单元,用于根据所述机房编码与候选机房的对应关系,从所述候选机房中确定处理过所述业务订单的目标机房。

在上述实施例的基础上,所述业务处理模块330,包括:

目标业务类型确定单元,用于根据所述业务订单的业务状态确定目标业务类型。

业务订单调度单元,用于将所述业务订单调度至所述目标机房,以进行所述目标业务类型对应的业务处理。

在上述实施例的基础上,所述业务数据更新模块340,包括:

业务数据更新单元,用于根据业务处理的结果更新所述目标机房中关于所述业务订单的业务数据。

同步单元,用于将所述业务数据同步至除所述目标机房之外的所述候选机房。

在上述实施例的基础上,所述装置还包括:

临时机房选取模块,用于在响应所述处理请求,将处理过所述业务订单的候选机房确定为目标机房之后,在所述目标机房发生故障时,选取一个除所述目标机房之外的所述候选机房作为临时机房。

临时业务处理单元,用于将所述业务订单调度至所述临时机房进行业务处理,以更新针对所述业务订单的业务数据。

上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

实施例四

图4为本发明实施例四提供的一种业务调度设备的结构示意图。如图4所示,该业务调度设备包括:处理器40、存储器41、输入装置42以及输出装置43。该业务调度设备中处理器40的数量可以是一个或者多个,图4中以一个处理器40为例。该业务调度设备中存储器41的数量可以是一个或者多个,图4中以一个存储器41为例。该业务调度设备的处理器40、存储器41、输入装置42以及输出装置43可以通过总线或者其他方式连接,图4中以通过总线连接为例。该业务调度设备可以是电脑和服务器等。本实施例以业务调度设备为服务器进行详细说明,该服务器可以是独立服务器或集群服务器。

存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的业务调度方法对应的程序指令/模块(例如,业务调度装置中的处理请求接收模块310、目标机房确定模块320、业务处理模块330和业务数据更新模块340)。存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置42可用于接收输入的数字或者字符信息,以及产生与业务调度设备的用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。输出装置43可以包括扬声器等音频设备。需要说明的是,输入装置42和输出装置43的具体组成可以根据实际情况设定。

处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的业务调度方法。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种业务调度方法,包括:

接收业务订单的处理请求;

响应所述处理请求,将处理过所述业务订单的候选机房确定为目标机房;

将所述业务订单调度至所述目标机房进行业务处理;

根据所述业务处理的结果更新针对所述业务订单的业务数据,其中,每个所述候选机房均存储有所述业务数据。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的业务调度方法操作,还可以执行本发明任意实施例所提供的业务调度方法中的相关操作,且具备相应的功能和有益效果。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的业务调度方法。

值得注意的是,上述业务调度装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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