CN114691309A - 一种批量业务处理系统、方法及装置 - Google Patents

一种批量业务处理系统、方法及装置 Download PDF

Info

Publication number
CN114691309A
CN114691309A CN202011598314.8A CN202011598314A CN114691309A CN 114691309 A CN114691309 A CN 114691309A CN 202011598314 A CN202011598314 A CN 202011598314A CN 114691309 A CN114691309 A CN 114691309A
Authority
CN
China
Prior art keywords
execution
batch processing
service
node
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011598314.8A
Other languages
English (en)
Inventor
刘运飞
乔正
邹振宇
张文学
纪明林
崔炯
胡林
汤婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN202011598314.8A priority Critical patent/CN114691309A/zh
Publication of CN114691309A publication Critical patent/CN114691309A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书公开了一种批量业务处理系统、方法及装置,调度节点根据批处理请求及预设的批处理步骤的有向无环图,确定批处理业务,再根据批处理业务及业务进度,确定批处理任务,并向执行节点发送任务执行请求,执行节点根据各处理单元的负载及各处理单元提供批处理服务,根据任务执行请求调用处理单元进行批处理,并根据处理单元返回的任务执行结果,确定执行状态,调度节点根据该执行状态重新确定业务进度以继续发送任务执行请求,直至批处理任务执行完毕。本系统通过预设的有向无环图确定批处理业务,因此仅需要向调度节点发送批处理请求,由调度节点确定批处理业务,并基于业务进度确定批处理任务,提高了效率。

Description

一种批量业务处理系统、方法及装置
技术领域
本说明书涉及计算机技术领域,尤其涉及一种批量业务处理系统、方法及装置。
背景技术
目前,随着计算机技术的迅速发展,批处理系统因为资源利用率高和吞吐量大的特点被应用于越来越多的场景中,例如,信用卡的非实时性业务场景。
在现有技术中,一种常用的业务批处理系统是基于单体架构实现的,即,该批处理系统的各子系统集中在一个服务器上运行,由控制中心分配批处理业务。以执行一次批处理流程为例,首先,控制中心根据各需要进行批处理的业务生成业务文件。其次,根据各批处理业务之间的相互依赖关系以及生成的业务文件,预设各子系统运行的时间段,并将该预设的时间段发送给各子系统,以及确定各子系统在该批处理流程中执行的步骤,即,各子系统接收哪个子系统发送的业务文件,以及将业务文件批处理完后发送至哪个子系统,并将各子系统执行的步骤发送至各子系统。然后,各子系统根据接收到的预设执行的时间段和执行的步骤,对业务文件进行处理。直至该批处理流程完成。
但是,预设不同的时间点对业务进行处理,会导致业务执行的效率较低。
发明内容
本说明书提供一种批量业务处理系统、方法及装置,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种批量业务处理系统,包括:调度节点、执行节点以及应用服务集群,所述应用服务集群包含若干处理单元,各处理单元提供不完全相同的批处理服务;
所述调度节点,用于根据接收到的批处理请求,和预设的批处理业务步骤的有向无环图,确定待执行的批处理业务;根据业务进度以及所述批处理业务,确定批处理任务,以向所述执行节点发送任务执行请求;其中,所述待执行的批处理业务包含至少一个批处理任务;
所述执行节点,用于根据接收到的任务执行请求,获取业务数据集,并根据应用服务集群中各处理单元的负载、所述批处理任务以及所述业务数据集,调用所述应用服务集群中的处理单元,进行批处理;
所述应用服务集群的处理单元,用于接收所述执行节点的调用请求,根据所述调用请求以及自身提供的批处理服务对所述业务数据集进行批处理,生成所述业务数据集的任务执行结果,并将所述任务执行结果返回至所述执行节点,所述任务执行结果为所述业务数据集进行批处理后的结果;
所述执行节点,用于接收并存储所述任务执行结果,根据所述任务执行结果确定执行状态,将所述执行状态返回至所述调度节点;
所述调度节点,用于根据接收到的所述执行状态重新确定所述业务进度,根据重新确定的所述业务进度,确定任务执行请求,并将确定出的任务执行请求发送至所述执行节点,使所述执行节点通过调用所述应用服务集群的处理单元继续进行批处理,直至所述待执行的批处理业务包含的批处理任务执行完毕为止。
可选地,所述执行节点,在启动时向所述调度节点发送注册请求;
所述调度节点,用于接收并存储所述执行节点发送的注册请求,根据所述注册请求存储所述执行节点的地址;并在确定出批处理任务后,根据已存储的执行节点的地址,向所述执行节点发送任务执行请求。
可选地,所述系统中包含多个执行节点;
所述调度节点,用于当确定出任务执行请求时,分别向所述执行节点发送第一负载查询请求;
所述各执行节点,用于根据所述接收到的第一负载查询请求,确定当前时刻自身负载状态,并返回所述调度节点;
所述调度节点,用于根据接收到的各执行节点分别返回的负载状态,向所述执行节点发送任务执行请求。
可选地,所述系统还包括:注册中心;
所述注册中心,用于针对应用集群中的每个处理单元,按照预设的间隔,向该处理单元轮询发送第二负载查询请求;
所述应用服务集群的每个处理单元,用于根据所述第二负载查询请求,确定当前时刻自身负载状态,并返回所述注册中心;
所述注册中心,用于根据接收到的各处理单元分别返回的负载状态,更新各处理单元的负载状态;
所述执行节点,用于当确定调用所述应用服务集群中的处理单元进行批处理时,从所述注册中心获取各处理单元的负载状态,并根据获取到的各处理单元的负载状态、所述业务数据集以及所述批处理任务,调用所述应用服务集群中的处理单元,进行批处理。
可选地,所述执行节点,用于根据所述批处理任务,从所述应用服务集群的各处理单元中,确定执行所述批处理任务所需调用的处理单元;当确定调用多个处理单元时,根据确定出的需要调用的各处理单元的负载,将所述业务数据集进行拆分,并根据拆分后的业务数据子集分别向各处理单元发送调用请求。
可选地,所述处理单元,用于根据所述调度请求向所述执行节点返回任务执行结果;
所述执行节点,用于根据所述调度请求和各处理单元返回的任务执行结果生成执行日志;
所述调度节点,用于当监测到所述执行节点发生故障时,根据所述执行节点生成的执行日志,确定所述批处理任务的剩余量,并根据所述批处理任务的剩余量,向其他执行节点发送任务执行请求。
本说明书还提供一种批量业务处理方法,包括:
接收批处理请求;
根据所述批处理请求,和预设的批处理业务步骤的有向无环图,确定待执行的批处理业务;
根据业务进度以及所述批处理业务,确定批处理任务,以向执行节点发送任务执行请求;
接收所述任务执行请求的执行状态;
根据接收到的所述执行状态重新确定所述业务进度,根据重新确定的所述业务进度,确定任务执行请求并发送至所述执行节点,直至所述待执行的批处理业务包含的批处理任务执行完毕为止。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述批量业务处理的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述批量业务处理方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
本说明书提供的批量业务处理的系统中,调度节点根据批处理请求及预设的批处理步骤的有向无环图,确定批处理业务,再根据批处理业务及业务进度,确定批处理任务,并向执行节点发送任务执行请求,执行节点根据各处理单元的负载及各处理单元提供批处理服务,根据任务执行请求调用处理单元进行批处理,并根据处理单元返回的任务执行结果,确定执行状态,调度节点根据该执行状态重新确定业务进度以继续发送任务执行请求,直至批处理任务执行完毕。
从上述系统中可以看出,本系统通过预设的有向无环图确定批处理业务,因此仅需要向调度节点发送批处理请求,由调度节点确定批处理业务,而不需要人为对批处理业务的流程进行设置,提高了效率。且本系统通过执行状态确定当前业务进度,并基于业务进度确定批处理任务,更加灵活,使得业务执行的效率更高。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书提供的批量业务处理系统的结构示意图;
图2a为本说明书提供的预设的批处理业务步骤的有向无环图;
图2b为本说明书提供的确定待执行的批处理业务的示意图;
图3为本说明书提供的确定调用处理单元的示意图;
图4为本说明书提供的批量业务处理系统执行批处理任务的示意图;
图5为本说明书提供的批量业务处理系统执行业务的详细流程示意图;
图6为本说明书提供的批量处理业务方法的流程示意图;
图7为本说明书提供的批量业务处理装置的示意图;
图8为本说明书提供的对应于图6的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
目前,基于单体架构的批处理系统的所有模块都运行在同一个进程中,以批处理系统有A、B、C三个子系统为例,预设D、E、F三个相邻的时间段,批处理系统的用户(例如,系统工程师或者业务人员),可根据需要进行的各类批处理(如,清算、记账、积分计算等等),确定批处理流程。则控制中心可根据确定出的批处理流程,确定各子系统在哪个时间段进行批处理。例如,假设控制中心确定A子系统在D时间段运行,B子系统在E时间段运行,C子系统在F时间段运行,其中,A子系统执行批处理流程中的对业务文件进行批处理的第一步骤,B系统执行第二步骤,C系统执行第三步骤。则控制中心预先将业务文件发送至A子系统,A子系统则在D时间段开始进行批处理,A子系统将批处理后的业务文件发送至B子系统,B子系统接收该业务文件并在E时间段开始进行批处理,并将批处理后的业务文件发送至C子系统,C子系统在F时间段开始进行批处理,当C子系统处理完毕时,则确定完成了该批处理流程。
但是,时间段是根据经验设置的,并且针对不同业务文件,时间段都是相同的,即,预设的。导致对业务进行批处理的过程较为死板,不够灵活,难以根据实际情况进行调整,可能会出现批处理错误的情况。例如,A子系统在D时间段内未将业务文件处理完,导致B子系统接收不到业务文件,在E时间段时无法对进行批处理,导致批处理流程无法继续进行。而为了避免这种情况出现,往往会延长各子系统运行的时间段,又容易导致子系统在接收到业务文件后,需要等待较长时间在开始进行批处理,导致批量业务处理的效率较低。
并且,由于各子系统属于单体架构,因此服务器的运行压力也会对各子系统的批处理效率造成影响,即使批处理任务中需要进行批处理的业务文件容量相同,也可能会出现处理时间不同的情况,而在实际应用中通常批处理的业务文件的容量是不同的,使得单体架构进行批处理的方法更加难以适应。
另外,所有模块都运行在同一个进程当中的特性,导致若现有的批处理系统中有某个子系统出现故障,则整个系统都会故障,容错率低,且随着文件的增加,单个数据库无法满足文件的存储,基于单体架构的批处理系统的并发能力也无法满足越来越多的数据量的需求,因此需要更加有效的批处理方法,提高批处理效率。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书提供的批量业务处理系统的结构示意图,其中,该系统包括:调度节点、执行节点以及应用服务集群,该应用服务集群包含若干处理单元,各处理单元提供不完全相同的批处理服务。
从软件角度上来说,本说明书提供的一个或多个实施例中,处理单元也可被称为处理节点,则该系统中的各节点是能够在服务器上运行的代码,通过运行各节点的代码实现各节点的功能,并且,在本说明书中,不同节点的代码之间是相互独立的,每个节点可通过预设的数据接口与其他节点进行通信或者数据传输,通过相互独立的节点使得可以单独对每个节点进行代码的迭代更新以及测试。
从硬件角度上来说,本说明书提供的一个或多个实施例中,各节点分别在不同的服务器上运行。
本说明书提供的一个或多个实施例中,以该批量业务处理系统为单个调度节点、单个执行节点、多个处理单元组成,且该批量业务处理系统处理银行的非实时性业务为例进行说明。其中,非实时性业务为接收到业务请求时将该业务请求进行存储,但并不实时对该业务请求进行处理,而是根据用户操作进行启动或者是在固定时间点开始对该业务请求进行处理的业务,如,信用卡的建卡建账业务。
该批量业务处理系统中的调度节点用于接收批处理请求,在银行的非实时性业务场景中,该批处理请求可由银行的业务中心发起。其中,该批处理请求可为预设时间点自动发起,例如,22:00,也可为业务中心根据工作人员的操作发起的,该批处理请求中携带有执行该批处理所需的业务数据的元数据,以及批处理业务包含的各批处理任务的类型。则调度节点可根据该批处理请求确定该批处理业务包含的各批处理任务的类型,以及预设的批处理业务步骤的有向无环图,确定待执行的批处理业务。其中,待执行的批处理业务为本次需执行的批处理任务的有序合集。
本说明书提供的一个或多个实施例中,预设的批处理业务步骤的有向无环图可根据批处理业务中的各批处理任务间的依赖关系确定,如图2a所示。
图2a为本说明书提供的预设的批处理业务步骤的有向无环图,以银行的非实时性业务场景为例,每个批处理任务就是批处理业务的一个步骤,记账的批处理任务依赖于执行清算以及建卡建账批处理任务后的任务执行结果,积分计算的批处理任务又依赖于执行记账批处理任务后的任务执行结果,则需要首先执行清算和建卡建账批处理任务,之后执行记账批处理任务,最后执行计息计费、还款、账单结算、积分计算、积分兑换等批处理任务。
图2b为本说明书提供的确定待执行的批处理业务的示意图,预设的批处理业务步骤的有向无环图中的深色部分为批处理请求中携带的批处理任务的类型,包括:清算、还款、记账、积分计算、计息计费、账单结算,则根据该有向无环图和批处理任务的类型,可确定待执行的批处理业务为清算、记账、积分计算、计息计费、还款、账单结算等批处理任务的有序集合。
在本说明书提供的一个或多个实施例中,该调度节点还可根据确定出的待执行的批处理业务以及业务进度,确定批处理任务,以向执行节点发送任务执行请求。其中,业务进度表征了当前时刻批处理业务的完成度,例如,当前时刻清算和建卡建账批处理业务执行完毕了,则可确定批处理任务为记账批处理任务,于是,调度节点可根据确定出的批处理任务,向执行节点发送任务执行请求。其中,该任务执行请求可携带有执行批处理任务所需的业务数据集的元数据,也可仅携带有执行批处理任务所需的业务数据集的地址信息,具体的该任务执行请求中包含的内容可根据需要进行设置,只要是能够确定业务数据集的内容即可,本说明书对此不做限制。
该系统中的执行节点,可接收该调度节点发送的任务执行请求,并根据接收到的任务执行请求,确定执行批处理任务所需的业务数据集的元数据以及批处理任务的类型。然后根据确定出的元数据,获取该业务数据集,并根据应用服务集群中各处理单元的负载、该批处理任务以及该业务数据集,调用该应用服务集群的处理单元,进行批处理。
具体的,该执行节点可根据接收到的该任务执行请求,确定该任务执行请求对应的批处理任务的任务类型。于是,该执行节点可根据应用服务集群中的各处理单元提供的批处理服务,以及该任务执行请求对应的批处理任务的任务类型,确定执行批处理任务需要调用的各处理单元。
另外,应用服务集群中的各处理单元提供不完全相同的批处理服务,所以对于每种批处理服务,可能存在有多个处理单元,均提供该批处理服务。如图3所示。
图3为本说明书提供的确定调用处理单元的示意图,图中,执行节点接收到的任务执行请求中携带的批处理任务的类型为记账,编号1~9的方形分别为第1~第9处理单元,则应用服务集群中包含有多个处理单元,其中,第1处理单元提供建卡建账批处理服务,第2处理单元提供清算记账批处理服务,第3处理单元提供清算记账批处理服务,第4处理单元提供计息计费批处理服务,第5处理单元提供还款履约批处理服务,第6处理单元提供积分计算批处理服务,第7处理单元提供积分计算批处理服务,第8处理单元提供积分兑换批处理服务,第9处理单元提供账单结算批处理服务。则可确定执行批处理任务需要调用的处理单元为第2处理单元和第3处理单元,箭头表示由执行节点向第2处理单元和第3处理单元发送调用请求。
当然,为了提高利用率,针对该应用服务集群中的每个处理单元,该处理单元可提供不止一种批处理服务,如清算记账类的处理单元可提供清算批处理服务,也可提供记账批处理服务,具体的各处理单元提供的批处理服务可以根据需要进行设置,本说明书对此不作限制。
在本说明书提供的一个或多个实施例中,处理单元在运行一段时间后,性能可能会出现变化,负载可能会不同,例如,可提供记账批处理服务的两个处理单元中,一个处理单元已经连续工作了数个小时,其内存、硬盘等占用率高,且性能较之刚开始工作时,有所下降,而另一个处理单元几乎没有工作,则调用这两个处理单元进行批处理时,若向两个处理单元发送同样数量的业务数据,则可能会因为前者负载高于后者负载,出现一个处理单元已经工作完成,而另一个处理单元仍有大量未进行批处理的业务数据,导致处理时间过长。因此,为了提高效率,可以根据各处理单元的负载,确定向各处理单元发送的业务数据的数量。
在本说明书提供的一个或多个实施例中,该执行节点可通过预设的第一时间间隔,向处理单元轮询发送第三负载查询请求,或由处理单元按照预设的第二时间间隔上报负载状态,来确定当前应用服务集群中的各处理单元的负载状态。于是,该执行节点还可根据确定出的执行批处理任务需要调用的各处理单元,确定需要调用的各处理单元的负载状态,并根据确定出的需要调用的各处理单元的负载,和执行批处理任务所需的业务数据集,向应用服务集群的处理单元发送调用请求。其中,该调用请求中携带有处理单元的标识以及业务数据集。
另外,为了避免因处理单元的工作压力过大而出现宕机的情况,可预设有工作强度阈值,如90%,当处理单元的负载占比大于90%时,可确定不调用该处理单元进行批处理。例如,需调用第2处理单元和第3处理单元执行批处理任务,当前第2处理单元负载状态为占用20%,第3处理单元负载状态为占用90%,则可确定仅向第2处理单元发送调用请求。
另外,还可根据各处理单元的负载状态,将该业务数据集进行拆分,例如,需调用第2处理单元和第3处理单元执行批处理任务,当前第2处理单元负载状态为占用40%,第3处理单元负载状态为占用60%,则可确定将业务数据集拆分为占业务数据集60%数据量的业务数据子集和占业务数据集40%数据量的业务数据子集,并根据该拆分后的业务数据子集,分别向各处理单元发送调用信息。
进一步地,还可以在不超过工作强度阈值的情况下,根据各处理单元的负载将业务数据集进行拆分。例如,预设的工作强度阈值为90%,需调用第2处理单元和第3处理单元执行批处理任务,当前第2处理单元负载状态为占用30%,第3处理单元负载状态为占用50%,则第2处理单元和第3处理单元的负载状态距工作强度阈值还有60%和40%,可确定将业务数据集拆分为占业务数据集60%数据量的业务数据子集和占业务数据集40%数据量的业务数据子集,并根据该拆分后的业务数据子集,分别向各处理单元发送调用信息。
当然,具体的执行节点调用处理单元的调用方法可以根据需要进行设置,本说明书对此不作限制。
该系统中的应用服务集群的每个处理单元,可接收该执行节点发送的调用请求,根据该调用请求确定需要进行批处理的业务数据集,并对该业务数据集进行批处理,生成该业务数据集的任务执行结果,并将该任务执行结果返回至该执行节点。
在本说明书提供的一个或多个实施例中,如前所述的,执行节点根据批处理任务,依次向处理单元发送业务数据集中的各业务数据,处理单元依次返回每个业务数据进行批处理后的处理结果,当处理单元返回该批量处理任务中所有业务数据的处理结果时,执行节点可根据该业务数据的处理结果确定得到任务执行结果。但是,在处理单元执行业务的过程中,可能出现大量业务数据处理失败的情况,因此,为了反应批处理任务执行的整体状态,确定是否需要继续进行批处理,则该执行节点还可根据任务执行节点确定任务执行状态。于是,该系统中的执行节点,可用于接收并存储该处理单元返回的任务执行结果,并根据该任务执行结果确定执行状态,将该执行状态返回至调度节点。其中,该任务执行状态可存储于该调度节点中,也可存储在数据库中,具体的存储位置可根据需要进行设置。任务执行状态表征了批处理任务的完成度,例如,记账批处理任务中共有1000条消息,其中,980条消息处理完成、20条消息处理失败,则可确定该执行状态为98%完成,2%失败。
另外,为了使调度节点能够对批处理任务处理失败的部分再次进行处理,该执行节点向调度节点返回的执行状态中还可携带有处理失败的业务数据的元数据。
该系统中的调度节点,可接收该执行节点发送的执行状态,并根据该执行状态重新确定业务进度。一般的,在处理单元执行业务时,总会出现一定程度的处理失败的情况。因此,该系统中可预设有容错率,当该执行状态的失败率低于该容错率时,可确定该批处理任务执行完成,继续执行下一个批处理任务。如,预设的容错率为5%,则当接收到执行节点返回的记账批处理任务98%完成,2%失败的任务执行结果时,调度节点可根据该2%的失败率,确定记账批处理任务执行完成,进而确定执行积分清算的批处理任务。以及调度节点可将该2%的执行失败的记账批处理任务量作为候补任务,当本次批处理业务执行完毕后,根据该执行状态携带的执行失败的业务数据的元数据再对该候补任务进行批处理。当该执行状态的失败率高于该容错率时,可确定该批处理任务未执行完成,可根据该执行状态中携带的处理失败的业务数据的元数据,向调度节点重新发送任务执行请求。
在业务进度更新后,该调度节点可根据更新后的业务进度,重新确定任务执行请求,并将重新确定出的任务执行请求发送至该执行节点,使该执行节点通过调用应用服务集群的处理单元继续进行批处理,直至待执行的批处理业务包含的批处理任务执行完毕为止。
基于图1所示的批量业务处理系统,调度节点根据接收到的批处理请求、预设的批处理步骤的有向无环图以及业务进度,确定批处理任务,以向执行节点发送任务执行请求,执行节点根据任务执行请求确定业务数据集,并根据应用服务集群中各处理单元的负载、批处理任务以及业务数据集,调用应用服务集群中的处理单元,进行批处理,应用服务集群中的处理单元,根据调用请求,对业务数据集进行批处理,生成任务执行结果并发送至执行节点,执行节点根据该任务执行结果进行存储,并根据执行结果确定执行状态,调度节点根据该执行状态更新业务进度以重新确定任务执行请求。不同于现有技术预设时间点进行处理,本系统通过更新当业务进度并基于业务进度确定批处理任务,使得业务执行的效率更高,且本说明书中的批处理任务是根据预设的有向无环图来进行设置的,因此,仅需要向调度节点发送批处理请求,由调度节点通过有向无环图来确定需要执行的批处理业务,而不需要人为对批处理业务的流程进行设置,提高了效率。
另外,现有技术还提供一种执行节点与调度节点组合的批处理系统,由调度节点向执行节点发送批处理任务,由执行节点对该批处理任务进行批处理,且现有技术中调度节点常为轻量级分布式任务调度框架xxl-job,执行节点常为批处理应用框架springbatch,而调度节点与执行节点之间的数据生成形式、协议等存在不兼容的问题,即,执行节点不能根据该调度节点发送的任务执行请求确定该任务执行请求对应的批处理任务与业务数据集的元数据等,故而无法执行该批处理任务的问题。因此,针对每个从调度节点向执行节点发送的批处理任务,都需要人为编写一个具有“翻译器”作用的工具,并将该工具发送至执行节点,使执行节点能够从该批处理任务中获取业务数据并对该业务数据进行批处理。但是,本说明书提供的批量业务处理系统,若也存在上述不兼容等情况,由于调度节点可根据预设的有向无环图以及接收到的批处理请求,确定批处理业务,以及根据业务进度确定批处理任务,因此,在有向无环图不进行更新的情况下,批处理业务的类型是确定的。于是,在本说明书中的执行节点可根据预设的有向无环图,预先配置有具有“通用翻译器”作用的工具,使得执行节点可执行每个基于有向无环图确定出的批处理任务。而不需要在调度节点向执行节点发送批处理任务时,再去编写针对该批处理任务的数据包,提高了业务执行的效率。另外,本说明书中的执行节点并不对业务数据进行批处理,而是将业务数据发送给分布式的处理单元,由处理单元对业务数据进行批处理,执行节点在批处理流程中起“触发”作用。因此,本说明书提供的批量业务处理系统对批处理任务进行批处理时效率更高。
进一步地,在本说明书提供的一个或多个实施例中,执行节点通过调度节点的地址向调度节点发送任务执行请求。因此,该系统中的执行节点可在启动时,向该调度节点发送注册请求,于是,该系统中的调度节点,可根据接收到的注册请求,存储该执行节点的地址,并在确定出批处理任务时,根据已存储的执行节点的地址向执行节点发送任务执行请求。
另外,为了避免当执行节点宕机时,调度节点不知道当前批处理任务的处理进度,导致调度节点需要根据该批处理任务的所有任务量,重新向其他执行节点发送任务执行请求的情况出现,在本说明书中,该执行节点还可根据调度请求和各处理单元依次返回的任务执行结果生成执行日志,将任务执行结果以及执行日志存储在该执行节点对应的数据库中。则当该系统中的调度节点监测到该执行节点宕机时,可从该数据库中获取该执行节点生成的执行日志,确定该批处理任务的剩余量,以及从该数据库中获取已经过处理单元处理的任务执行结果。并可根据该批处理任务的剩余量,向其他执行节点发送任务执行请求。即,当任一执行节点无法继续工作时,调度节点均可确定已经处理完的数据,以及确定批处理任务的进度,从而通过调用其他执行节点,继续执行该批处理任务。其中,该任务执行结果还可存储于该执行节点对应的其他存储设备中,具体的存储位置可以根据需要进行设置,本说明书对此不做限制。
另外,为了避免当调度节点宕机时,该系统中的其他调度节点不知道该调度节点确定出的批处理任务的类型以及执行批处理任务的执行器,导致其他调度节点需要重新确定批处理任务,并向执行节点发送任务执行请求的情况出现。在本说明书中,该调度节点还可根据任务执行请求、执行该批处理任务的执行节点、以及该批处理任务的执行状态生成调度日志,将调度日志存储在该调度节点对应的数据库中。则当该系统中的其他调度节点监测到该调度节点宕机时,可从该数据库中获取该调度节点生成的调度日志,确定执行该批处理任务的执行节点。并向该执行节点发送状态获取请求,以当该执行节点根据任务执行结果确定出执行状态时,向该调度节点发送该执行状态。
在本说明书提供的一个或多个实施例中,为了更高效地管理系统,该系统还可设置有注册中心,该注册中心可用于确定应用集群中每个处理单元的负载状态,并将各处理单元的负载状态发送至执行节点,以使执行节点对处理单元进行调用。
具体的,该注册中心可针对应用集群中的每个处理单元,按照预设的第三时间间隔,如,0.5s,向该处理单元轮询发送第二负载查询请求,其中,该第二负载查询请求用于确定各处理单元的负载状态。于是,该应用服务集群的每个处理单元,可根据该第二负载查询请求,确定当前时刻自身负载状态,并将当前时刻自身负载状态返回该注册中心。则该注册中心,可根据接收到的各处理单元分别返回的负载状态,更新各处理单元的负载状态。当然,也可为各处理单元根据预设的时间间隔向注册中心上报自身当前负载状态。具体的注册中心确定处理单元负载状态的方法可以根据需要进行设置。
需要说明的是,本说明书中的第一时间间隔、第二时间间隔、第三时间间隔可以相同也可以不同,时间间隔具体为多少可根据需要进行设置,本说明书对此不做限制。
在本说明书提供的一个或多个实施例中,该系统中的执行节点在确定调用应用服务集群中的处理单元进行批处理时,可从注册中心获取各处理单元的负载状态,并根据获取到的各处理单元的负载状态、业务数据集以及批处理任务,调用该应用服务集群中的处理单元,进行批处理。其中,该执行节点可从该注册中心获取应用服务集群中所有处理单元的负载状态和地址,由执行节点确定需要调用的处理单元,并根据该处理单元的地址向该处理单元发送调用请求,也可由执行节点确定任务执行请求携带的批处理任务的类型,并根据该批处理单元的类型从注册中心获取需要调用的处理单元的负载状态及地址,进而调用处理单元进行批处理。具体的由执行节点获取各处理单元的负载状态可根据需要进行设置,本说明书对此不做限制。
以上为本说明书提供的以单个调度节点和单个执行节点为例进行说明的批量业务处理系统。当然,本说明书中的调度节点和执行节点还可为多个,不同的调度节点可分别接收批处理请求,确定自身要执行的批处理业务。也就是说,不同的调度节点执行不同的批处理业务。则各调度节点可分别根据业务进度和以及确定出的待执行的批处理业务,确定批处理任务。
针对每个调度节点,该调度节点在确定出批处理任务后,可向执行节点发送任务执行请求。其中,每个调度节点可向不同的执行节点发送任务执行请求,每个执行节点在同一时间可仅执行一个批处理任务。如,调度节点1可向执行节点1和执行节点2分别发送清算任务执行请求,而执行节点1和执行节点2在接收到该清算任务执行请求之后,仅可执行该清算批处理任务,调度节点2如向执行节点1和/或执行节点2发送任务执行请求,则执行节点1和/或执行节点2可向调度节点2返回错误信息,以提示调度节点2该执行节点1已被占用。
执行节点可根据接收到的任务执行请求,以及各处理单元的负载,调用处理单元进行批处理。其中,处理单元可接收多个执行节点发送的调用请求,根据接收到的各调用请求,并行进行批处理。因为存在一个处理单元被多个执行节点调用的情况,而被每个处理单元调用会占用一定的资源,因此,本说明书中的各处理单元的负载还可根据调用该处理单元的执行节点数确定,如,被一个执行节点调用可视为占用了20%的负载。当然,处理单元的负载也可根据内存、磁盘等的占用率确定。
应用服务集群中的各处理单元可根据调用请求对批处理任务的业务数据集进行批处理,并将批处理后的结果作为任务执行结果返回至执行节点,执行节点可根据该任务执行状态重新确定业务进度,并重新确定批处理任务。下面以多个调度节点、多个执行节点、多个处理单元组成的批量业务处理系统执行业务为例进行说明,如图4所示。
图4为本说明书提供的批量业务处理系统执行批处理任务的示意图,左边为调度节点,中间为执行节点,右边为应用服务集群,该应用服务集群包含多个处理单元,其中,处理单元1提供清算记账批处理服务,处理单元2提供清算记账批处理服务,处理单元3提供建卡建账批处理服务。则调度节点1可确定向执行节点1与执行节点2发送清算批处理任务的任务执行请求,调度节点2可确定向执行节点3发送建卡建账批处理任务的任务执行请求。执行节点1可基于接收到的任务执行请求中的批处理任务的类型,确定可调用处理单元1、2进行批处理,并根据处理单元1、2的负载状况,确定向处理单元1发送调用请求。执行节点2可基于接收到的任务执行请求中的批处理任务的类型,确定可调用处理单元1、2进行批处理,并根据处理单元1、2的负载状况,确定向处理单元1、2发送调用请求。执行节点3可基于接收到的任务执行请求中的批处理任务的类型,确定可调用处理单元3进行批处理,并根据处理单元3的负载状况,确定向处理单元3发送调用请求。应用服务集群中的各处理单元可根据该调用请求进行批处理,并生成任务执行结果返回至执行节点,则执行节点可将该任务执行结果进行存储,并根据该任务执行结果生成执行状态返回至调度节点,调度节点根据该接收到的执行状态重新确定业务进度,根据重新确定的业务进度,确定任务执行请求,并将确定出的任务执行请求发送至执行节点,使执行节点通过调用应用服务集群的处理单元继续进行批处理,直至所述待执行的批处理业务包含的批处理任务执行完毕为止。
更进一步地,单个服务器的计算能力是有限的,为了避免该系统中的执行节点出现因为负载过高导致设备宕机的情况,因此,在向执行节点发送任务执行请求前,该调度节点可根据预存的各执行节点的地址,向各执行节点发送第一负载查询请求,该第一负载查询请求用于获取执行节点的负载状态。于是,该执行节点可接收调度节点发送的第一负载查询请求,以根据该第一负载查询请求,确定当前时刻自身负载状态,并将该负载状态返回至调度节点。则该调度节点可根据接收到的各执行节点分别返回的负载状态,向各执行节点发送任务执行请求。其中,调度节点可向当前时刻负载最低的执行节点发送任务执行请求,也可根据各处理单元的负载状态,将该任务执行请求进行拆分,例如,向执行节点1发送前1000条消息的任务执行请求,向执行节点2发送1000~1500条消息的任务执行请求,消息为本说明书中提供的系统的业务数据集包含的最小单位。
基于图1所示的系统,本说明书提供批量业务处理系统执行业务的详细流程示意图,如图5所示。
S100:调度节点根据接收到的批处理请求,和预设的批处理业务步骤的有向无环图,确定待执行的批处理业务。
S102:调度节点根据业务进度以及该批处理业务,确定批处理任务,以向该执行节点发送任务执行请求;其中,该待执行的批处理业务包含至少一个批处理任务。
S104:执行节点根据接收到的任务执行请求,获取业务数据集。
S106:执行节点根据应用服务集群中各处理单元的负载、该批处理任务以及该业务数据集,调用该应用服务集群中的处理单元,进行批处理。
S108:应用服务集群的处理单元,根据该调用请求以及自身提供的批处理服务对该业务数据集进行批处理,生成该业务数据集的任务执行结果。
S110:应用服务集群的处理单元,将该任务执行结果返回至该执行节点,该任务执行结果为该业务数据集进行批处理后的结果。
S112:执行节点,接收并存储该任务执行结果,根据该任务执行结果确定执行状态,将该执行状态返回至该调度节点。
S114:调度节点,用于根据接收到的执行状态重新确定业务进度,根据重新确定的业务进度,确定任务执行请求,并将确定出的任务执行请求发送至执行节点,使执行节点通过调用应用服务集群的处理单元继续进行批处理,直至所述待执行的批处理业务包含的批处理任务执行完毕为止。
图6为本说明书实施例提供的批量业务处理的方法,具体包括以下步骤:
S200:接收批处理请求。
S202:根据所述批处理请求,和预设的批处理业务步骤的有向无环图,确定待执行的批处理业务。
S204:根据业务进度以及所述批处理业务,确定批处理任务,以向执行节点发送任务执行请求。
S206:接收所述任务执行请求的执行状态。
S208:根据接收到的所述执行状态重新确定所述业务进度,根据重新确定的所述业务进度,确定任务执行请求并发送至所述执行节点,直至所述待执行的批处理业务包含的批处理任务执行完毕为止。
其中,该批量业务处理的方法具体可由图1所示的系统中的调度节点执行,具体执行业务的过程可参考上述系统中对调度节点执行业务过程的描述,本说明书再次不再赘述。
以上为本说明书的一个或多个实施例提供的批量业务处理方法,基于同样的思路,本说明书还提供了相应的批量业务处理装置,如图7所示。
图7为本说明书提供的批量业务处理装置示意图,具体包括:
第一接收模块300,用于接收批处理请求;
第一确定模块302,用于根据所述批处理请求,和预设的批处理业务步骤的有向无环图,确定待执行的批处理业务;
第二确定模块304,用于根据业务进度以及所述批处理业务,确定批处理任务,以向执行节点发送任务执行请求;
第二接收模块306,用于接收所述任务执行请求的执行状态;
更新模块308,用于根据接收到的所述执行状态重新确定所述业务进度,根据重新确定的所述业务进度,确定任务执行请求并发送至所述执行节点,直至所述待执行的批处理业务包含的批处理任务执行完毕为止。
说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图6提供的批量业务处理方法。
本说明书还提供了图8所示的电子设备的示意结构图。如图8所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图6所述批量业务处理方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种批量业务处理系统,其特征在于,所述系统包括:调度节点、执行节点以及应用服务集群,所述应用服务集群包含若干处理单元,各处理单元提供不完全相同的批处理服务;
所述调度节点,用于根据接收到的批处理请求,和预设的批处理业务步骤的有向无环图,确定待执行的批处理业务;根据业务进度以及所述批处理业务,确定批处理任务,以向所述执行节点发送任务执行请求;其中,所述待执行的批处理业务包含至少一个批处理任务;
所述执行节点,用于根据接收到的任务执行请求,获取业务数据集,并根据应用服务集群中各处理单元的负载、所述批处理任务以及所述业务数据集,调用所述应用服务集群中的处理单元,进行批处理;
所述应用服务集群的处理单元,用于接收所述执行节点的调用请求,根据所述调用请求以及自身提供的批处理服务对所述业务数据集进行批处理,生成所述业务数据集的任务执行结果,并将所述任务执行结果返回至所述执行节点,所述任务执行结果为所述业务数据集进行批处理后的结果;
所述执行节点,用于接收并存储所述任务执行结果,根据所述任务执行结果确定执行状态,将所述执行状态返回至所述调度节点;
所述调度节点,用于根据接收到的所述执行状态重新确定所述业务进度,根据重新确定的所述业务进度,确定任务执行请求,并将确定出的任务执行请求发送至所述执行节点,使所述执行节点通过调用所述应用服务集群的处理单元继续进行批处理,直至所述待执行的批处理业务包含的批处理任务执行完毕为止。
2.如权利要求1所述的系统,其特征在于,所述执行节点,在启动时向所述调度节点发送注册请求;
所述调度节点,用于接收并存储所述执行节点发送的注册请求,根据所述注册请求存储所述执行节点的地址;并在确定出批处理任务后,根据已存储的执行节点的地址,向所述执行节点发送任务执行请求。
3.如权利要求1所述的系统,其特征在于,所述系统中包含多个执行节点;
所述调度节点,用于当确定出任务执行请求时,分别向所述执行节点发送第一负载查询请求;
所述各执行节点,用于根据所述接收到的第一负载查询请求,确定当前时刻自身负载状态,并返回所述调度节点;
所述调度节点,用于根据接收到的各执行节点分别返回的负载状态,向所述执行节点发送任务执行请求。
4.如权利要求1所述的系统,其特征在于,所述系统还包括:注册中心;
所述注册中心,用于针对应用集群中的每个处理单元,按照预设的间隔,向该处理单元轮询发送第二负载查询请求;
所述应用服务集群的每个处理单元,用于根据所述第二负载查询请求,确定当前时刻自身负载状态,并返回所述注册中心;
所述注册中心,用于根据接收到的各处理单元分别返回的负载状态,更新各处理单元的负载状态;
所述执行节点,用于当确定调用所述应用服务集群中的处理单元进行批处理时,从所述注册中心获取各处理单元的负载状态,并根据获取到的各处理单元的负载状态、所述业务数据集以及所述批处理任务,调用所述应用服务集群中的处理单元,进行批处理。
5.如权利要求4所述的系统,其特征在于,所述执行节点,用于根据所述批处理任务,从所述应用服务集群的各处理单元中,确定执行所述批处理任务所需调用的处理单元;当确定调用多个处理单元时,根据确定出的需要调用的各处理单元的负载,将所述业务数据集进行拆分,并根据拆分后的业务数据子集分别向各处理单元发送调用请求。
6.如权利要求1所述的系统,其特征在于,所述处理单元,用于根据所述调度请求向所述执行节点返回任务执行结果;
所述执行节点,用于根据所述调度请求和各处理单元返回的任务执行结果生成执行日志;
所述调度节点,用于当监测到所述执行节点发生故障时,根据所述执行节点生成的执行日志,确定所述批处理任务的剩余量,并根据所述批处理任务的剩余量,向其他执行节点发送任务执行请求。
7.一种批量业务处理方法,其特征在于,所述方法包括:
接收批处理请求;
根据所述批处理请求,和预设的批处理业务步骤的有向无环图,确定待执行的批处理业务;
根据业务进度以及所述批处理业务,确定批处理任务,以向执行节点发送任务执行请求;
接收所述任务执行请求的执行状态;
根据接收到的所述执行状态重新确定所述业务进度,根据重新确定的所述业务进度,确定任务执行请求并发送至所述执行节点,直至所述待执行的批处理业务包含的批处理任务执行完毕为止。
8.一种批量业务处理装置,其特征在于,所述装置包括:
第一接收模块,用于接收批处理请求;
第一确定模块,用于根据所述批处理请求,和预设的批处理业务步骤的有向无环图,确定待执行的批处理业务;
第二确定模块,用于根据业务进度以及所述批处理业务,确定批处理任务,以向执行节点发送任务执行请求;
第二接收模块,用于接收所述任务执行请求的执行状态;
更新模块,用于根据接收到的所述执行状态重新确定所述业务进度,根据重新确定的所述业务进度,确定任务执行请求并发送至所述执行节点,直至所述待执行的批处理业务包含的批处理任务执行完毕为止。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求7所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求7所述的方法。
CN202011598314.8A 2020-12-29 2020-12-29 一种批量业务处理系统、方法及装置 Pending CN114691309A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011598314.8A CN114691309A (zh) 2020-12-29 2020-12-29 一种批量业务处理系统、方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011598314.8A CN114691309A (zh) 2020-12-29 2020-12-29 一种批量业务处理系统、方法及装置

Publications (1)

Publication Number Publication Date
CN114691309A true CN114691309A (zh) 2022-07-01

Family

ID=82132793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011598314.8A Pending CN114691309A (zh) 2020-12-29 2020-12-29 一种批量业务处理系统、方法及装置

Country Status (1)

Country Link
CN (1) CN114691309A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501474A (zh) * 2023-06-08 2023-07-28 之江实验室 一种批量同质任务的处理系统、方法以及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501474A (zh) * 2023-06-08 2023-07-28 之江实验室 一种批量同质任务的处理系统、方法以及装置
CN116501474B (zh) * 2023-06-08 2023-09-22 之江实验室 一种批量同质任务的处理系统、方法以及装置

Similar Documents

Publication Publication Date Title
EP3221795B1 (en) Service addressing in distributed environment
CN108958894B (zh) 一种分布式事务处理方法、系统、事务管理器及终端设备
CN107016016B (zh) 一种数据处理的方法及装置
CN104065636A (zh) 数据处理方法和系统
CN110046187B (zh) 数据处理系统、方法及装置
CN112463290A (zh) 动态调整计算容器的数量的方法、系统、装置和存储介质
CN114691309A (zh) 一种批量业务处理系统、方法及装置
CN110795234A (zh) 一种资源调度方法及装置
US20220206836A1 (en) Method and Apparatus for Processing Virtual Machine Migration, Method and Apparatus for Generating Virtual Machine Migration Strategy, Device and Storage Medium
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
CN114625410A (zh) 一种请求消息处理方法、装置及设备
CN111435320B (zh) 一种数据处理方法及其装置
CN108874557B (zh) 一种前端接口处理方法及系统
CN111580938A (zh) 一种工作单元的事务处理方法、装置、设备及介质
CN113554498B (zh) 一种针对用户账务请求的处理方法和装置
CN111061576A (zh) 一种实体对象的创建方法及系统
CN115630090B (zh) 一种任务状态转换系统
CN116501474B (zh) 一种批量同质任务的处理系统、方法以及装置
EP3933582B1 (en) Distributed storage method and device, electronic apparatus and computer-readable medium
CN116820430B (zh) 异步读写方法、装置、计算机设备及存储介质
CN117472553B (zh) 一种工作流处理方法、装置、处理设备及可读存储介质
CN115174587B (zh) 一种数据传输系统、方法、装置、计算机可读存储介质及电子设备
CN116701410B (zh) 数联网数据语用内存状态数据的存储方法及系统
CN110321250B (zh) 一种针对应用的容灾方法及装置
CN112019452B (zh) 一种业务需求的处理方法、系统及相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination