分布式任务容灾方法及其装置与流程

文档序号:18163872发布日期:2019-07-13 09:28阅读:167来源:国知局
分布式任务容灾方法及其装置与流程
本申请涉及容灾领域,特别涉及一种分布式任务容灾技术。
背景技术
:所谓机房级容灾,是指当有机房发生灾难无法工作时,其他机房自动承担起无法工作机房的任务。机房是指在企业或政府部门中,用来存放服务器,为用户及员工提供it服务的地方,所述服务包括通话、发送短信、邮件、钉钉和发起支付等。机房里面通常放置各种服务器和小型机。为了保证容灾,现有技术方案是:任务不区分机房id,每个机房都去捞取同一个任务。图1是现有技术中一种机房容灾技术方案的拓扑图。在图1所示的技术方案中,每个机器均按照一定的时间间隔,定时轮询数据库获取待执行的任务。现有技术中,如图1所示的机房容灾技术方案存在以下缺点:(1)任务吞吐量低,每个机房均扫描任务,处理时容易并发锁定;(2)效率低,一旦任务量增大,很难控制任务能够在指定时间内被消化掉。为解决这个技术问题,目前亟需一种任务吞吐量大,且能够保证容灾的技术。技术实现要素:本申请的目的在于提供一种分布式任务容灾方法及其装置,任务吞吐量大,且能够自动容灾,任务处理可靠性高且效率高。为解决上述技术问题,本发明的实施方式公开了一种分布式任务容灾方法,第一对应关系中存储有至少一个分布式任务和处理该分布式任务的机房的编号,可用机房列表中存储有可用机房的编号,各个机房的编号按照预定次序形成闭环;所述方法包括以下步骤:当机房发生灾难时,将发生灾难的机房的编号从所述可用机房列表中删除;第一机房根据所述第一对应关系获取所述第一机房的编号对应的任务,以及在所述闭环上按照所述预定次序所述第一机房的编号的前一个可用机房的编号和所述第一机房的编号之间的编号对应的任务。本发明的实施方式还公开了一种分布式任务容灾装置,第一对应关系中存储有至少一个分布式任务和处理该分布式任务的机房的编号,可用机房列表中存储有可用机房的编号,各个机房的编号按照预定次序形成闭环;所述装置包括:机房删除模块,用于当机房发生灾难时,将发生灾难的机房的编号从所述可用机房列表中删除;第一任务模块,用于根据所述第一对应关系获取所述第一机房的编号对应的任务,以及在所述闭环上按照所述预定次序所述第一机房的编号的前一个可用机房的编号和所述第一机房的编号之间的编号对应的任务。本发明的实施方式还公开了一种分布式任务容灾设备,包括:存储器,用于存储计算机可执行指令;以及,处理器,用于在执行所述计算机可执行指令时实现上述方法中的步骤。本发明的实施方式还公开了一种计算机可读存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述方法中的步骤。本发明实施方式与现有技术相比,主要区别及其效果在于:每个机房都有编号,且每个机房均分配有不同的任务,当某个机房发生灾难时,由与灾难机房编号相邻的可用机房自动代替灾难机房处理任务,任务吞吐量大,且能够自动容灾,任务处理可靠性高且效率高。本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述
发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均因视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征a+b+c,在另一个例子中公开了特征a+b+d+e,而特征c和d是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征e技术上可以与特征c相组合,则,a+b+c+d的方案因技术不可行而应当不被视为已经记载,而a+b+c+e的方案应当视为已经被记载。附图说明图1是现有技术中一种机房容灾技术方案的拓扑图;图2是根据本申请第一实施方式的一种分布式任务容灾方法的流程示意图;图3是根据本申请第一实施方式的一种机房编号闭环的示意图;图4是根据本申请第二实施方式的一种分布式任务容灾装置的结构示意图。具体实施方式在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。本申请的第一实施方式涉及一种分布式任务容灾方法,图2是该分布式任务容灾方法的流程示意图。所述分布式任务,是指把大量分散的、执行可靠性差的任务统一管理,并实现集群调度和分布式部署的一种任务处理方式。分布式,保证了任务处理的高可用性、伸缩性和负载均衡。假设有海量需要待执行的任务均记录在任务列表中。待执行的任务包括:发送短信、钉钉、发起支付等。为了保证高效触发,采用多机房+弹性机房部署应用;为避免资源竞争,每个任务均具有机房id属性,表示该任务需要被某个机房执行。第一对应关系中存储有至少一个分布式任务和处理该分布式任务的机房的编号,可用机房列表中存储有可用机房的编号,各个机房的编号按照预定次序形成闭环。为了方便理解,下面举例进行说明:假设有5个机房,这5个机房的编号(id)分别为:0、1、2、3和4;此外,假设还有5个任务分别为:任务0、任务1、任务2、任务3和任务4;并且,在正常情况下,任务0在编号为0的机房被触发(也可以说被执行或者被处理),任务1在编号为1的机房被触发,任务2在编号为2的机房被触发,任务3在编号为3的机房被触发,任务4在编号为4的机房被触发。第一对应关系中存储有分布式任务和处理该分布式任务的机房的编号。在上面的例子中,所述第一对应关系如下表1所示:表1分布式任务处理该分布式任务的机房的编号任务00任务11任务22任务33任务44可用机房列表中存储有可用机房的编号。在初始化时,针对上面的例子,所述可用机房列表如下表2所示:表2可用机房的编号01234各个机房的编号按照预定次序形成闭环。针对上面的例子,5个机房,按照编号0-1-2-3-4-0的次序形成闭环,如图3所示,这里的预定次序优选为顺时针方向。当然,在其他的实施方式中,预定次序也可以为逆时针方向。具体地说,如图2所示,该分布式任务容灾方法包括以下步骤:在步骤201中,当机房发生灾难时,将发生灾难的机房的编号从可用机房列表中删除。对于步骤201,继续上面的例子进行说明:假设编号为3的机房发生灾难,无法正常工作,即编号为3的机房宕机。将编号为3的机房的编号从可用机房列表中删除。此时的可用机房列表如下表3所示:表3可用机房的编号0124此后进入步骤202,第一机房根据第一对应关系获取第一机房的编号对应的任务,以及在闭环上按照预定次序第一机房的编号的前一个可用机房的编号和第一机房的编号之间的编号对应的任务。换句话说,在步骤202中,第一机房根据第一对应关系除了获取第一机房的编号对应的任务在外,还获取可用机房列表中在所述闭环上按照所述预定次序第一机房的编号的前一个可用机房的编号和第一机房编号之间的机房编号在所述对应关系表中对应的任务。对于步骤202,继续上面的例子进行说明:编号为0的机房根据第一对应关系获取编号0对应的任务0,编号为1的机房根据第一对应关系获取编号1对应的任务1,编号为2的机房根据第一对应关系获取编号2对应的任务2,编号为3的机房宕机,编号为4的机房根据第一对应关系获取编号4对应的任务4,并获取可用机房列表中的在闭环上按照编号0-1-2-3-4-0的次序,位于编号4的前一个可用机房的编号(即编号2)和编号4之间的编号(即编号3)对应的任务(即任务3),即编号为4的机房获取任务4和任务3。也就是说,编号为4的机房根据第一对应关系,除了获取它自己的任务(任务4)之外,还获取宕机机房的任务(任务3)。换句话说,编号为4的机房获取编号区间在(2,4],即2<编号<=4的编号对应的任务。进一步地,优选地,在步骤202中还包括以下子步骤:锁定并处理所述第一机房所获取的任务;将处理完成的任务从所述第一对应关系中删除。在第一机房获取任务之后,会锁定所获取的任务,并在任务处理完成后从任务列表中删除所处理完成的任务,以避免任务被重复执行。此外,优选地,在该分布式任务容灾方法中还包括以下步骤:当发生灾难的机房恢复正常之后,将恢复正常的机房的编号重新加入到所述可用机房列表中。此后结束本流程。综上所述,本申请提供了一种海量定时任务高效触发时的容灾方案,每个机房都有编号,且每个机房均分配有不同的任务,当某个机房发生灾难时,由与灾难机房编号相邻的可用机房自动代替灾难机房处理任务。并且,本申请技术方案可以达到如下技术效果:任务吞吐量大:机房之间任务互相隔离,无资源竞争,且随着机器、机房数量的扩充,处理能力随之增强。自动容灾:当某个机房出现灾难无法再提供服务时,由其他机房自动代替灾难机房继续服务。本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(programmablearraylogic,简称“pal”)、随机存取存储器(randomaccessmemory,简称“ram”)、可编程只读存储器(programmablereadonlymemory,简称“prom”)、只读存储器(read-onlymemory,简称“rom”)、电可擦除可编程只读存储器(electricallyerasableprogrammablerom,简称“eeprom”)、磁盘、光盘、数字通用光盘(digitalversatiledisc,简称“dvd”)等等。本申请的第二实施方式涉及一种分布式任务容灾装置,图4是该分布式任务容灾装置的结构示意图。所述各方数据包括:第一方数据和第二方数据,其中,所述第一方数据分为训练数据和测试数据。第一对应关系中存储有至少一个分布式任务和处理该分布式任务的机房的编号,可用机房列表中存储有可用机房的编号,各个机房的编号按照预定次序形成闭环。具体地说,如图4所示,所述装置包括:机房删除模块,用于当机房发生灾难时,将发生灾难的机房的编号从可用机房列表中删除;第一任务模块,用于根据第一对应关系获取第一机房的编号对应的任务,以及在闭环上按照预定次序第一机房的编号的前一个可用机房的编号和第一机房的编号之间的编号对应的任务。进一步地,优选地,第一任务模块还包括以下子模块:锁定处理子模块,用于锁定并处理第一任务模块所获取的任务。任务删除子模块,用于将锁定处理子模块处理完成的任务从第一对应关系中删除。在第一机房获取任务之后,会锁定所获取的任务,并在任务处理完成后从任务列表中删除所处理完成的任务,以避免任务被重复执行。此外,优选地,该分布式任务容灾装置还包括:机房添加模块,用于当发生灾难的机房恢复正常之后,将恢复正常的机房的编号重新加入到所述可用机房列表中。第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。需要说明的是,本领域技术人员应当理解,上述分布式任务容灾装置的实施方式中所示的各模块的实现功能可参照前述分布式任务容灾方法的相关描述而理解。上述分布式任务容灾装置的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本申请实施例上述分布式任务容灾装置如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,readonlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。相应地,本申请实施方式还提供一种分布式任务容灾设备,包括:存储器,用于存储计算机可执行指令;以及,处理器,用于在执行所述计算机可执行指令时实现本申请的各方法实施方式。此外,本申请实施方式还提供一种计算机存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本申请的各方法实施方式。需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。在本申请提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,在阅读了本申请的上述公开内容之后,本领域技术人员可以对本申请作各种改动或修改,这些等价形式同样落于本申请所要求保护的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1