CN111414241A - 批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质 - Google Patents
批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111414241A CN111414241A CN202010123547.6A CN202010123547A CN111414241A CN 111414241 A CN111414241 A CN 111414241A CN 202010123547 A CN202010123547 A CN 202010123547A CN 111414241 A CN111414241 A CN 111414241A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- node
- processing
- data
- nodes
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质。属于数据处理技术领域,进行批量数据处理时,调度控制中心所对应的计算机设备接收第一数据,获取预先被标记为生效状态的调度节点所对应的计算机设备作为第一类调度节点,发送第一数据至第一类调度节点,第一类调度节点按照第一预设分配算法分配第一数据至自身所调度的计算机设备所对应的处理节点,所述处理节点根据第一数据所对应的第一预设处理方式对第一数据进行处理。由于存在多个调度节点,每个调度节点及其所调度的处理节点组成的每个分组均可以独立工作,批量数据在不同分组之间切换处理,对外服务不中断,保证服务持续,提高了批量数据处理的效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质。
背景技术
IT系统所包含的集群应用机器一般有两种,分别用于处理实时联机交易和异步批量交易。对于实时联机交易需要在指定时间返回处理结果给前端系统,例如,客户在网银发起一笔转账交易,10秒内会告知客户本次交易是成功还是失败。对于一些大批量的交易,例如信用卡自动还款,在同一天可能涉及上百万客户批量扣款,此时比较适合采用异步批量交易处理,可以将交易明细数据生成批量文件,发给核心系统进行批量扣款。
对于实时联机交易机器,各个机器节点相互独立,没有关联,针对实时联机交易机器传统部署版本的方式,是在负载均衡设备中标记指定机器为不可用状态,等待几分钟后这些机器的存量交易处理后就可以开始部署版本(部署版本指更新软件系统)。由于每次只是部分机器停止服务,其他机器仍然在正常提供服务,所以系统是在持续提供服务,对外服务没有发生中断。
对于异步批量交易机器,请参阅图1,图1为本申请实施例提供的传统技术中批量数据异步处理所涉及的异步批量交易机器工作流程的一个示意架构图,需要有一个调度节点负责调度数据文件,将数据下派到处理节点进行处理,然后收集各个处理节点的处理结果,汇总处理结果返回给前端。由于需要调度节点和处理节点进行交互,由调度节点统一进行调度,如果需要在调度节点上部署版本,调度节点需要停止工作,处理节点也就无法正常工作,传统方式所有批量交易机器需要同时停止服务,待调度节点上版本部署完成重新启动服务后才能重新提供服务,系统在部署版本期间对外服务是完全中断。
因此,传统技术中,对于联机批量文件的异步处理,对于计划性停机,是停止对外提供服务的,例如,若要部署新版本,需要停机几个小时等不等的时间,导致对外服务效率较低。
发明内容
本申请实施例提供了一种批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质,能够解决传统技术中批量文件异步处理中效率较低的问题。
第一方面,本申请实施例提供了一种应用于调度控制中心的批量数据处理方法,调度控制中心控制若干个调度节点,每个所述调度节点调度若干个处理节点,所述方法包括:接收外部数据源发送的第一数据;获取预先被标记为生效状态的调度节点作为第一类调度节点;按照第一预设发送方式发送所述第一数据至所述第一类调度节点,以使所述第一类调度节点按照第一预设分配算法分配所述第一数据至自身所调度的处理节点,以使所述处理节点根据所述第一数据所对应的第一预设处理方式对所述第一数据进行处理。
第二方面,本申请实施例还提供了一种应用于调度节点的批量数据处理方法,调度节点受控于调度控制中心,所述调度控制中心控制若干个调度节点,每个所述调度节点调度若干个处理节点,所述方法包括:发送访问请求至所述调度控制中心所包含的互斥锁,所述互斥锁用于保证在同一时间只有一个所述调度节点处于生效状态;判断是否取得所述互斥锁;若取得所述互斥锁,接收所述调度控制中心发送的第二数据;按照第二预设分配算法分配所述第二数据至自身所调度的处理节点,以使所述处理节点根据所述第二数据所对应的第二预设处理方式对所述第二数据进行处理。
第三方面,本申请实施例还提供了一种批量数据处理装置,包括用于执行应用于调度控制中心的所述批量数据处理方法的单元,或者用于执行应用于调度节点的所述批量数据处理方法的单元。
第四方面,本申请实施例还提供了一种批量数据处理系统,所述系统包括调度控制中心,所述调度控制中心控制若干个调度节点,每个所述调度节点调度若干个处理节点;其中,所述调度控制中心用于执行应用于调度控制中心的所述批量数据处理方法的步骤,所述调度节点用于执行应用于调度节点的所述批量数据处理方法的步骤,所述处理节点用于执行根据所接收到的分配数据所对应的预设处理方式对所述分配数据进行处理的步骤。
第五方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括第一存储器以及与所述第一存储器相连的第一处理器或者是包括第二存储器以及与所述第二存储器相连的第二处理器;所述第一存储器用于存储第一计算机程序,所述第二存储器用于存储第二计算机程序;所述第一处理器用于运行所述第一计算机程序,以执行应用于调度控制中心的所述批量数据处理方法的步骤,所述第二处理器用于运行所述第二计算机程序以执行应用于调度节点的所述批量数据处理方法的步骤。
第六方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有第一计算机程序和/或第二计算机程序,所述第一计算机程序被处理器执行时可实现应用于调度控制中心的所述批量数据处理方法的步骤,所述第二计算机程序被处理器执行时可实现应用于调度节点的所述批量数据处理方法的步骤。
本申请实施例提供了一种批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质。本申请实施例实现批量数据处理时,所对应的应用系统中包括调度控制中心,所述调度控制中心控制若干个调度节点,每个所述调度节点调度若干个处理节点,调度控制中心接收外部数据源发送的第一数据,获取预先被标记为生效状态的调度节点作为第一类调度节点,按照第一预设发送方式发送所述第一数据至所述第一类调度节点,所述第一类调度节点按照第一预设分配算法分配所述第一数据至自身所调度的处理节点,所述处理节点根据所述第一数据所对应的第一预设处理方式对所述第一数据进行处理,所述处理节点对所述第一数据处理完毕后,将处理结果通过所述调度节点返回至所述调度控制中心,以使所述调度控制中心汇总所有处理结果后,作为批量数据处理的最终结果,并将最终结果输出,以完成批量数据处理。由于存在多个调度节点,每个调度节点调度若干个处理节点,所有的调度节点通过调度控制中心统一进行控制和管理,因此,每个调度节点及其所调度的处理节点所组成的每个分组均可以独立工作,其中一个分组处于停机状态,可以将批量数据处理的工作切换到其它备用分组中进行处理。例如,若要针对其中一个分组进行部署新版本或者维修等计划性停机,或者在其中一个分组产生故障等导致非计划性停机时,可以将批量数据处理切换到其它分组上进行,从而通过批量数据在不同分组之间切换处理,从而保证系统在部署版本等计划性停机或者产生故障等非计划停机期间,实现对外服务不中断,实现联机批量文件的灰度部署,尤其对于数据处理持续性要求比较高的应用环境,保证了系统服务的持续性,提高了批量数据处理的效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的传统技术中批量数据处理所涉及的异步批量交易机器工作流程的一个示意架构图;
图2为本申请实施例提供的批量数据处理方法中的一个应用环境示意图;
图3为本申请实施例提供的应用于调度控制中心的批量数据处理方法中的一个流程示意图;
图4为本申请实施例提供的应用于调度节点的批量数据处理方法中的一个流程示意图;
图5为本申请实施例提供的应用于调度控制中心的批量数据处理装置的一个示意性框图;
图6为本申请实施例提供的应用于调度节点的批量数据处理装置的一个示意性框图;以及
图7为本申请实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
请参阅图2,图2为本申请实施例提供的批量数据处理方法中的一个应用环境示意图。如图2所示,所述应用环境包括调度控制中心,所述调度控制中心包含有调度节点1和调度节点2,调度节点1被配置包含有处理节点1和处理节点2,调度节点2被配置包含有处理节点3、处理节点4及处理节点5,其中,带箭头的实线表示当前被配置处于连接状态,带箭头的虚线表示可以被配置处于连接状态。具体地,包括的各个主体如下:
1)调度控制中心。为实现调度控制的计算机设备,控制若干个调度节点,用于进行调度节点的切换与管理,将接收的外部数据发送至当前生效的调度节点,并接收调度节点返回的数据处理结果,将数据处理结果输出,从而完成数据处理。
2)调度节点。为实现调度处理节点的计算机设备,至少包括两个调度节点,其中,当前处于预先被标记为生效状态的可用调度节点,属于处理数据的主调度节点,被设置为第一类调度节点,用于接收调度控制中心发送的数据,并负责将数据分发至该调度节点被配置的能够调度的处理节点,接收处理节点返回的数据处理结果,并将数据处理结果返回至调度控制中心,当前未处于生效状态的可用调度节点,属于处理数据的备用调度节点,被设置为第二类调度节点,以根据需要随时替换第一类调度节点。调度节点是否处于可用状态,针对计划性停机,例如对节点进行版本部署时,可以由人工通过可视化页面进行设置,被设置为不可用的调度节点,不接收调度控制中心发送的数据,调度控制中心只将数据发送可用的且处于生效状态的调度节点,从而实现多个调度节点之间的切换,对外服务不用发生中断,能够实现系统的灰度部署,解决当前调度处理中效率不高且可扩展性较差的问题;
进一步地,调度节点1可以被配置包含处理节点1、处理节点2、处理节点3、处理节点4及处理节点5中的任意节点,图2所示中调度节点1被配置为处理节点1和处理节点2,同样地,调度节点2也可被配置包含处理节点1、处理节点2、处理节点3、处理节点4及处理节点5中的任意节点,图2所示中调度节点1被配置为处理节点3、处理节点4和处理节点5。
3)处理节点。为实现具体数据处理的计算机设备,用于接收调度节点分发的数据,处理分发的数据以得到处理结果,并将处理结果返回至调度节点。
其中,调度控制中心、调度节点及处理节点所对应的物理机器可以是相同的,只是实现的功能不同,例如可均为计算机设备中的主机。
图1中的各个主体工作过程如下:调度节点1和调度节点2被设置为可用状态,调度节点1和调度节点2各自发送自身的节点状态至所述调度控制中心,然后访问所述调度控制中心所包含的互斥锁,调度控制中心将取得所述互斥锁的调度节点标记为第一类调度节点,为主调度节点,即当前生效的调度节点,其它调度节点为非生效状态的节点,标记为第二类调度节点,即备用调度节点。调度控制中心接收外部数据源发送的第一数据,获取当前处于预先被标记为生效状态的调度节点作为第一类调度节点,发送所述第一数据至所述第一类调度节点,所述第一类调度节点接收到所述第一数据后,将所述第一数据分配至自身所调度的处理节点,所述处理节点对所述第一数据进行处理,所述处理节点对所述第一数据处理完毕后,得到数据处理结果,将所述数据处理结果返回至所述调度节点,所述调度节点将所述数据处理结果返回至所述调度控制中心,所述调度控制中心对所有数据处理结果进行整合,以得到批量数据的最终处理结果,将所述最终处理结果输出,从而完成对批量数据的处理。
需要说明的是,上述批量数据处理方法的应用场景仅仅用于说明本申请技术方案,并不用于限定本申请技术方案,上述连接关系还可以有其它形式。
请图2和图3,图3为本申请实施例提供的应用于调度控制中心的批量数据处理方法中的一个流程示意图。如图2所示,所述方法应用于调度控制中心,所述调度控制中心控制若干个调度节点,每个所述调度节点调度若干个处理节点,所述方法应用于所述调度控制中心,如图3所示,该方法包括以下步骤S301-S303:
S301、接收外部数据源发送的第一数据。
具体地,针对批量数据的处理,一般采用设置批量交易机器,即多个处理节点采取分布式处理。本申请实施例中,由于所述应用环境中包括多个调度节点,每个调度节点包括若干个处理节点,所以首先需要将批量交易机器所对应的处理节点配置至不同的调度节点,可以由人员通过设置页面对处理节点进行设置,以实现处理节点配置至不同的调度节点,使每个调度节点各包含部分处理节点,将每个调度节点及其所包含的若干个处理节点视为一个分组,从而实现对调度节点和处理节点进行分组,每个分组能够单独处理数据,会得到多个分组,多个分组由调度控制中心统一进行管理和调度,能够实现本申请实施例中通过主调度节点和备用调度节点轮换工作,从而通过主备切换实现对外服务不中断,可以实现联机批量文件的灰度部署,灰度部署是指系统中包含的部分机器计划性停机或者非计划停机时,系统仍可持续性提供服务,不会暂停服务。
将多个处理节点配置至不同的调度节点后,由于所述应用环境中包含多个调度节点共存,并且由调度控制中心根据每个调度节点的状态对多个调度节点统一进行管理,每个调度节点各自的状态可以在启动服务初始化时,通过向调度控制中心进行注册以发送自己的状态,调度节点在调度控制中心注册成功后,被调度控制中心设置为处于可用状态,未在调度控制中心注册成功的调度节点,视为不可用调度节点,不可用调度节点可以处于计划性停机状态或者非计划性停机状态。后续每个调度节点可以按照预设周期定时向调度控制中心上报本节点的状态,未上报本调度节点状态的调度节点视为不可用调度节点,从而使调度控制中心持续获取可用状态的调度节点,从而使调度控制中心持续获得调度节点是否处于可用状态,调度控制中心分配数据时,可以根据获取全局所有机器的状态进行分发,以防调度节点的状态被改变而调度控制中心不知情的情形发生,保证主备切换处于可持续状态。所述调度节点的状态可以由人工通过可视化页面介入设置,例如,对于计划性停机,比如部署版本等情形,可由人员设置调度节点为不可用状态,而对于非计划性停机,比如机器出现故障等情形,可由计算机设备自动检测调度节点的状态,例如,可由调度节点检测到故障后,将状态信息上报至调度控制中心,还可以在机器出现故障,通过机器告警等方式通知维护人员,从而由维护人员通过设置页面设置该调度节点的状态为不可用状态等,从而持续保证调度控制中心能够获得调度节点的最新状态。
调度控制中心获得调度节点的状态后,将所有可用的调度节点按照预先设置标记为生效状态的可用调度节点和非生效状态的可用调度节点,生效状态的调度节点为当前的主调度节点,即第一类调度节点,用于处理批量数据,非生效状态的调度节点为备用调度节点,即第二类调度节点,用于备用处理数据,当主处理节点的状态发生改变而不可用状态时,调度控制中心将当前生效状态的调度节点切换到备用调度节点。
进行批量数据处理时,调度控制中心接收外部数据源发送的批量的第一数据,根据调度节点的节点状态,将所述第一数据发送至当前生效的第一调度节点进行处理。
进一步地,调度控制中心接收外部数据源发送的批量数据,将批量数据发送至当前生效的调度节点前,可以将所述批量数据按照预先切块设置切分成若干数据块,将切分后的数据块发送至所述当前生效的调度节点。
具体地,将接收的批量数据进行切块,可以根据批量数据的时效性要求及可用的处理节点的资源状态,按照预先切块设置将批量数据切分成较小的数据块,然后将切分后的数据块发送至当前生效的调度节点。例如,若批量数据所对应的联机批量文件为3M,要求1分钟返回结果,有N个线程可使用,可以根据线程数量、联机批量文件的大小及时效性要求,将联机批量文件进行切块。或者也可以根据固定大小将联机批量文件进行切块,例如,以5000个通信记录为单位,每一次联机交易信息为一个通信记录,若联机批量文件包含5000个以内的通信记录,为1块数据,若联机批量文件包含5001至10000个的通信记录,被切分为2块数据,若联机批量文件包含10001至15000个的通信记录,被切分为3块数据等,以此类推。通过将批量数据分块,可以提高调度节点分配所述数据至处理节点的效率,也能够提高多个所述处理节点协同对所述数据的处理效率。
S302、获取预先被标记为生效状态的调度节点作为第一类调度节点。
具体地,调度节点在调度控制中心注册成功后,调度控制中心会根据预先设置预先将所有可用的调度节点进行标记,将所有调度节点标记为两类,一部分调度节点会被预先标记为当前处于生效状态,可以进行批量数据的处理,为第一类调度节点,一部分调度节点会被预先标记为当前处于非生效状态,不进行批量数据的处理,作为备份节点,为第二类调度节点。
调度控制中心将接收的第一数据按照自身预先设置的处理算法处理后,例如,将数据切块后,获取预先被标记为生效状态的调度节点作为第一类调度节点,即当前处于生效状态的调度节点作为第一类调度节点,将所述第一数据发送至所述第一类调度节点,以使所述第一调度节点所在分组的处理节点处理所述第一数据。
S303、按照第一预设发送方式发送所述第一数据至所述第一类调度节点,以使所述第一类调度节点按照第一预设分配算法分配所述第一数据至自身所调度的处理节点,以使所述处理节点根据所述第一数据所对应的第一预设处理方式对所述第一数据进行处理。
其中,所述第一预设发送方式指选择发送所述第一数据的所述调度节点的方式,主要指若存在多个当前被预先标记为生效状态的调度节点,在多个生效状态的调度节点之间如何分配批量数据的方式。
其中,第一预设分配算法可以为传统技术中调度节点分配数据至处理节点的算法,例如,调度节点将第一数据切割成数据块后,平均分配所有数据块至自身所调度的所有处理节点,也可以按照自身所调度的所有处理节点的繁忙程序,将分配的数据块与繁忙程度成反相关关系进行分配。
具体地,调度控制中心按照所述第一类调度节点所包含的调度节点的数量,按照第一预设发送方式,将所述第一数据发送至第一类调度节点,以使所述第一类调度节点所包括的调度节点处理所述第一数据。若所述第一类调度节点包含一个所述调度节点,发送所述第一数据至所述第一类调度节点所包含的该个所述调度节点即可,若所述第一类调度节点包含两个所述调度节点或者两个以上的所述调度节点,将所述第一数据发送至所述第一类调度节点所包含的每个所述调度节点,以使每个节点处理所述数据。
调度控制中心发送所述第一数据至所述第一类调度节点,所述第一类调度节点接收到所述第一数据后,按照自身所预先设置的第一预设分配算法将所述第一数据分配至自身所调度的处理节点,所述自身所调度的处理节点,可以为若干个处理节点,所述自身所调度的处理节点接收到分配的第一数据后,根据所述第一数据所对应的第一预设处理方式对所述第一数据进行处理,主要是根据批量数据所相关的业务进行对应的处理,例如,对于扣款的批量交易数据,处理节点进行扣款处理,对于付款的批量交易数据,处理节点进行付款处理,对于购物的批量交易数据,生成交易相关交易信息等根据具体业务需求对所述数据进行处理。其中,处理节点在服务启动后,例如分布式系统中每个服务器所对应的处理节点,只要处于正常状态,就会处于工作状态,接收到第一数据后,直接根据第一预设处理方式所对应的算法配置对第一数据进行处理。每个所述处理节点将各自的数据处理结果返回至所述调度节点,所述调度节点将所述数据处理结果返回至所述调度控制中心,所述调度控制中心整合所有数据处理结果后,作为批量数据处理的最终结果,并将最终结果输出,以完成批量数据处理。
本申请实施例中,由于允许多个调度节点共存,存在其它可用调度节点处于备用状态,即第二类调度节点,可以随时接替当前处于生效状态的第一类调度节点,并且由于调度控制中心负责管理调度节点,调度控制中心根据调度节点的生效状态及繁忙程度,可以实现不同调度节点之间的切换,从而将接收到的批量数据,比如联机异步批量文件所对应的批量数据,发送至当前生效的调度节点,再由当前生效的调度节点分配至该当前生效的调度节点所对应的处理节点进行处理,从而既可以实现批量处理机器对外提供服务,又可以对处于备用状态的调度节点进行部署版本等计划性停机或者非计划性停机,从而对于批量数据,尤其对于联机异步批量文件,实现灰度部署。例如,请继续参阅图2,假设A组机器准备要部署版本,可以将A组所有机器标记为不可用状态,当前处于生效状态的调度节点自动由调度节点1切换到调度节点2,调度节点1转为备用节点,调度节点2为主调度节点,A组所有机器只处理存量的数据,不再接收新的数据,存量数据处理完成就可以开始部署版本。A组机器部署完版本重启服务后,将A组机器标记为正常状态,允许接收和处理新的数据文件,然后对B组机器重复A组机器的版本部署操作。本申请实施例中,改进后的异步批量交易机器在版本部署期间也可以持续提供服务,对外服务没有发生中断。
综上所述,本申请实施例实现批量数据处理时,由于存在多个调度节点,每个调度节点调度若干个处理节点,所有的调度节点通过调度控制中心统一进行控制和管理,因此,每个调度节点及其所调度的处理节点所组成的每个分组均可以独立工作,其中一个分组处于停机状态,可以将批量数据处理的工作切换到其它备用分组中进行处理。例如,若要针对其中一个分组进行部署新版本或者维修等计划性停机,或者在其中一个分组产生故障等导致非计划性停机时,可以将批量数据处理切换到其它分组上进行,从而保证系统在部署版本等计划性停机或者产生故障等非计划停机期间,实现对外服务不中断,实现联机批量文件的灰度部署,尤其对于数据处理持续性要求比较高的应用环境,保证了系统服务的持续性,提高了批量数据处理的效率。
在一个实施例中,所述获取预先被标记为生效状态的调度节点作为第一类调度节点的步骤之前,还包括:
接收所述调度节点对互斥锁的访问请求,所述互斥锁用于保证在同一时间只有一个所述调度节点处于生效状态;
将取得所述互斥锁的调度节点标记为处于生效状态的调度节点,其它调度节点标记为非生效状态的调度节点。
其中,互斥锁,英文为Mutex lock,互斥锁是一种通过加锁的方法来控制对共享资源的访问的方式。
具体地,在调度控制中心设置一个互斥锁,调度节点处理数据需要先检查自身处于可用状态,并且获取互斥锁才能处理数据,从而确保同一时间只有一个调度节点生效,其他可用调度节点处于备用状态,即多个处于可用状态的调度节点通过向调度控制中心访问互斥锁,取得互斥锁的调度节点为生效的调度节点,其它调度节点处于备用状态,可以随时接替当前生效的调度节点,以实现在同一时间只有一个调度节点生效,可以避免存在多个生效的调度节点而导致批量数据产生混乱,直至该生效状态的调度节点的状态被改变,再采取主备切换。例如,该生效状态的调度节点出现故障,或者该调度节点由于需要部署新的版本等需要计划性停机被设置为不可用状态,而导致该调度节点的状态被改变。
在一个实施例中,所述按照第一预设发送方式发送所述第一数据至所述第一类调度节点的步骤之前,还包括:
接收所述第一类调度节点按照第一预设周期发送的节点状态,所述节点状态包括所述第一类调度节点的繁忙程度信息;
所述按照第一预设发送方式发送所述第一数据至所述第一类调度节点的步骤包括:
判断所述第一类调度节点所被调度的所述调度节点的数量;
若所述第一类调度节点所被调度的所述调度节点为一个,根据所述节点状态,按照第二预设发送方式发送所述第一数据至所述第一类调度节点所被调度的所述调度节点;
若所述第一类调度节点所被调度的所述调度节点为两个或者两个以上,在第三预设发送方式的基础上,根据每个所述节点状态,按照所述第二预设发送方式将所述第一数据发送至所述第一类调度节点所被调度的每个所述调度节点。
其中,调度节点的繁忙程度指所述调度节点处理的数据量与所述调度节点性能的比例关系,若比例关系若为反比例关系,反比例关系越大,表明该调度节点越繁忙,若比例关系若为正比例关系,正比例关系越大,表明该调度节点越越空闲,处理能力会更强,其中,反比例关系,也可以称为反相关关系。
具体地,所述第一类调度节点按照第一预设周期向调度控制中心发送自身的节点状态,所述节点状态包括所述第一类调度节点的繁忙程度信息,调度控制中心接收所述第一类调度节点发送的节点状态,根据所述节点状态,发送所述第一数据至所述第一类调度节点所调度的调度节点,以使所述第一类调度节点将所述第一数据分配至自身所调度的处理节点。
调度控制中心接收到调度节点发送的节点状态后,根据调度节点的节点状态,再结合第一类调度节点所包含的调度节点的数量,按照不同情形进行发送第一,即判断所述第一类调度节点所包含的所述调度节点的个数,若所述第一类调度节点包含唯一一个所述调度节点,根据节点状态,按照第二预设发送方式发送所述第一数据至所述第一类调度节点所包含的该个所述调度节点即可,若所述第一类调度节点包含两个所述调度节点或者两个以上的所述调度节点,在第三预设发送方式的基础上,根据每个所述调度节点的所述节点状态,再按照第二预设发送方式将所述第一数据发送至所述第一类调度节点所包含的每个所述调度节点。具体分为以下情形:
(一)若所述第一类调度节点包含一个所述调度节点,根据所述节点状态,按照第二预设发送方式发送所述第一数据至所述第一类调度节点所包含的该个所述调度节点。其中,第二预设发送方式具体包括:
(1)若所述调度节点的繁忙程度小于第一预设阈值,判断所述调度节点处于非繁忙状态,调度控制中心直接发送所述第一数据至所述调度节点,以使所述调度节点所在的分组对所述第一数据进行处理。
(2)若所述调度节点的繁忙程度大于所述第一预设阈值而又小于第二预设阈值,判断所述调度节点介于繁忙与非繁忙之间的状态,可以向所述调度节点发送部分所述第一数据。
(3)若所述调度节点的繁忙程度大于所述第二预设阈值,判断所述调度节点处于繁忙状态,可以采取以下两种方式:
1)暂缓向所述调度节点发送所述第一数据,即暂时的发送数据量为零,后续根据接收的所述调度节点的状态,当所述调度节点满足接收数据的条件时,再向所述调度节点发送所述第一数据。
2)若所述调度节点非常繁忙,可以将当前生效的调度节点强制切换到其它备用的调度节点,让所述调度节点处理存量数据,而让其它备用的调度节点处理新的批量数据,从而保证对批量数据的处理不受影响,可以对外持续提供服务,从而保证批量数据的处理效率。
(二)若所述第一类调度节点包含两个所述调度节点或者两个以上的所述调度节点,在第三预设发送方式的基础上,根据每个所述节点状态,按照所述第二预设发送方式将所述数据发送至所述第一类调度节点所包含的每个所述调度节点。其中,第三预设发送方式具体可以包括以下方式:
1)可以将所述第一数据进行切分成块,并对每块数据设置标记,将所述数据块平均发送至多个调度节点,后续根据所述预设标记将每个调度节点处理的数据处理结果进行整合处理,以得到数据处理结果。
2)也可以将多个调度节点根据每个调度节点的繁忙程度,将分配处理的数据块数量与繁忙程度成反相关分配,越忙的调度节点,即积压的待数据处理越多的调度节点,或者剩余可用的资源较少的调度节点,分配较少的数据,相反,分配越多的数据,从而使数据在多个调度节点之间进行合理分配,以充分利用各个调度节点的性能,提高对批量数据的处理效率。
在一个实施例中,所述接收所述调度节点对互斥锁的访问请求的步骤包括:
接收所述调度节点按照预设周期对互斥锁的访问请求。
具体地,一个调度节点通过访问获得互斥锁后,被标记为生效状态,为处于当前生效状态的调度节点,为了通过锁策略保证资源分配的公平性,充分利用调度节点的性能,可以在预设条件下使该当前生效的调度节点释放互斥锁,从而再重新接收多个主备状态的调度节点访问互斥锁,迭代上述过程,实现接收所述调度节点按照预设周期访问互斥锁,从而将互斥锁循环重新进行分配,能够确保数据资源分配的公平性,提高调度节点的使用率。
进一步地,所述方法还包括:调度控制中心接收修改调度节点的修改指令,以实现对调度控制中心所控制的调度节点的修改,所述修改包括添加调度节点或者删除调度节点。
具体地,每一调度节点又可以称为一个分组,可以根据对外服务的性能需求,将批量交易机器拆开任意个分组。也可以根据对外业务的需求,修改调度控制中心所包含的分组,例如,业务所对应的批量数据增加时,增加新的批量交易机器和新的调度节点,调度控制中心接收添加调度节点的添加指令,以实现对调度节点的添加,以实现对业务数据处理能力的提升,类似地,业务所对应的批量数据减少时,减少原来的批量交易机器和原来新的调度节点,调度控制中心接收减少调度节点的删除指令,以实现对调度节点的减少,以节省资源设备,降低成本,通过上述对于分组所对应的系统中包含的节点的修改,可以提高业务所对应的批量数据与批量交易机器性能的匹配,从而更合适的满足业务所对应的批量数据的需求。同时,例如,针对一种业务,需要5台机器即可满足业务需求,如果给该种业务所对应的分组配置10台机器,其中5台机器处于闲置状态,会造成机器资源的浪费。其中,对批量交易机器拆开进行分组,主要是人为介入将机器进行分组。其中,拆分的标准是每组机器都可以独立处理数据,不需其他分组的机器协同处理。请继续参阅图2,图2包括A组和B组两个分组,A组对应调度节点1,B组对应调度节点2,在同一时间只有一个调度节点生效,即A组生效,或者B组生效,A组可以根据业务需要由人工进行设置,被配置调用处理节点1、处理节点2、处理节点3及处理节点4中的任意个处理节点,图2所示为A组被配置为可以调用处理节点1、处理节点2、处理节点3及处理节点4共四个节点,B组也可以根据业务需要由人工进行设置,被配置调用处理节点1、处理节点2、处理节点3及处理节点4中的任意个处理节点,图2所示为B组被配置为可以调用处理节点1、处理节点2、处理节点3及处理节点4共四个节点。
本申请实施例中,通过对批量交易机器进行分组,如果部分机器发生异常暂时无法提供服务,可以在线标记该部分机器为不可用状态,通过告警进行故障提示,以使维护人员对机器进行修复后再重新接入,修复后重新接入的机器,会重新出现在可连接列表中,由人工通过可视化页面进行设置被选择以被配置到不同的调度节点所对应的分组中,通过对批量交易机器进行分组,可以在多个调度节点之间进行切换,对外服务不用发生中断,从而实现系统的灰度部署,可以降低各个机器之间的耦合性,增强系统的健壮性。从而解决传统技术中调度处理中效率不高且可扩展性较差的问题。
需要说明的是,联机交易是指实时联机交易,联机交易一般由F5等负载均衡设备充当调度节点,每笔交易只会发给一个处理节点,交易是实时返回处理结果,负载均衡设备只需要知道某个节点是否可用即可。其中,负载均衡,英文名称为LoadBalance,是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。而本申请实施例中所描述的批量数据处理,是针对联机批量文件所对应的批量数据,传统技术中的处理方式是将联机批量文件所对应的批量数据发送至单个调度节点内部拆分成的多个线程并发处理。由于实时联机交易和异步批量交易的工作原理不同,由于实时联机交易中采用的负载均衡设备不能解决异步批量交易所对应的应用环境中所需要解决的问题,异步批量交易不能采用实时联机交易的工作方式。具体地,若异步批量交易中采用实时联机交易的工作原理,负载均衡设备需要有解决以下问题的能力:
1)负载均衡设备分派文件处理,除了需要考虑处理节点是否可用,还需考虑各个节点当前的繁忙程度;
2)文件由于数据量较大,无法实时返回处理结果,一般都是采用异步处理,文件处理完成需要回调通知前端系统,负载均衡设备需要支持接口反向调用;
3)如果一个文件只能在单个节点处理,一旦文件数据量很大,节点所有线程全部工作可能都无法满足需求,只能被动等待处理;
4)如果需要实现跨节点处理一个文件,负载均衡设备上需要实现同时对多个处理节点通讯、处理进度跟踪、结果收集反馈等。
因此,异步批量交易不能采用实时联机交易的工作方式。由于实时联机交易与异步批量交易对数据的处理实时性要求、处理流程及各自对应采用的硬件设备都是不同的,与实时联机交易的应用场景不同,本申请实施例中的异步批量交易机器的应用场景,通过针对多个处理节点,将多个处理节点由人工通过可视化页面进行设置,以实现将处理节点灵活的配置至调度节点,并通过调度节点状态的设置,实现调度节点间的切换,从而通过调度控制节点将联机批量文件分发至生效的调度节点进行处理,同时可以对备用状态的调度节点进行计划性停机或者非计划性停机,从而实现对异步批量交易机器在版本部署等计划性停机时也可以持续提供服务,对外服务没有发生中断,从而实现异步联机批量(文件)的灰度部署,保证了异步批量交易机器对外服务的持续性,提高了对联机批量(文件)处理的效率
请图2和图4,图4为本申请实施例提供的应用于调度节点的批量数据处理方法中的一个流程示意图。如图2所示,所述方法应用于调度节点,所述调度节点受控于调度控制中心,所述调度控制中心控制若干个调度节点,每个所述调度节点调度若干个处理节点,如图4所示,该方法包括以下步骤S401-S405:
S401、发送访问请求至所述调度控制中心所包含的互斥锁,所述互斥锁用于保证在同一时间只有一个所述调度节点处于生效状态。
S402、判断是否取得所述互斥锁。
S403、若取得所述互斥锁,接收所述调度控制中心发送的第二数据;
S404、按照第二预设分配算法分配所述第二数据至自身所调度的处理节点,以使所述处理节点根据所述第二数据所对应的第二预设处理方式对所述第二数据进行处理;
S405、若未取得所述互斥锁,所述调度节点处于备用状态。
其中,所述第二数据和上述实施例中所描述的所述第一数据可以为相同的数据,所述第二预设分配算法和上述实施例中所描述的所述第一预设分配算法可以为相同的算法,第二预设处理方式和上述实施例中所描述的所述第一预设处理方式可以为相同的方式,在此为了描述上的方便,采用了不同的描述术语。
具体地,若调度节点处于可用状态,在调度控制中心注册成功后,调度节点会访问所述调度控制中心所包含的互斥锁,所述互斥锁用于保证在同一时间只有一个所述调度节点处于生效状态。调度节点判断是否取得所述互斥锁,若取得所述互斥锁,会被调度控制中心标记为当前处于生效状态的第一类调度节点,从而后续能够接收所述调度控制中心发送的第二数据,调度节点接收到调度控制中心发送的第二数据后,按照第二预设分配算法分配所述第二数据至自身所包含的处理节点,所述处理节点接收到调度节点分配的第二数据后,所述处理节点根据所述第二数据所对应的第二预设处理方式对所述第二数据进行处理,以获得对应的数据处理结果,若调度节点未取得所述互斥锁,调度节点会被调度控制中心标记为处于备用状态的第二类调度节点,所述调度节点处于备用状态,直至第一类调度节点的状态被改变,通过主备切换,处于备用状态的第二类调度节点作为生效状态的结果,第二类调度节点接收调度控制中心发送的第二数据,再将接收的第二数据发送至自身所包含的处理节点进行对应处理,以实现自身所在的分组对批量数据进行处理。从而保证系统在部署版本等计划性停机或者产生故障等非计划停机期间,实现对外服务不中断,实现联机批量文件的灰度部署,尤其对于数据处理持续性要求比较高的应用环境,保证了系统服务的持续性,提高了批量数据处理的效率。
在一个实施例中,所述按照第二预设分配算法分配所述第二数据至自身所调度的处理节点的步骤之前,还包括:
接收对所调度的处理节点的修改指令,所述修改指令包括删除处理节点、添加处理节点及更改处理节点的状态;
根据所述修改指令,对所调度的所述处理节点进行修改。
具体地,针对异步批量交易机器,本申请实施例中由于允许多个调度节点共存,调度控制中心包含若干个调度节点,每个所述调度节点被设置包含若干个处理节点,因此将所有的处理节点根据调度节点划分成了以调度节点及该调度节点包含的处理节点所组成的对应分组。每个调度节点可以默认被配置固定的若干个处理节点,每个所述调度节点所包含的若干个处理节点也可以根据实际需求由人工通过设置页面被设置。例如,每个调度节点可以由人工通过预设的可视化设置页面进行设置,以被配置若干个处理节点,以实现对每个调度节点所包含的处理节点的调整,从而每个调度节点接收对所包含的处理节点的修改指令,所述修改指令包括删除处理节点、添加处理节点及更改处理节点的状态,根据所述修改指令,对所包含的所述处理节点进行修改。例如,请继续参阅图2,A组所对应的调度节点1被配置的调度节点群组为包含处理节点1和处理节点2,处理节点1和处理节点2根据预先设置归属于一个调度节点群组,调度节点1所包括的处理节点也可以再由人工通过可视化页面进行设置,从而被修改的调度节点包含更多的处理节点,或者包括更少的处理节点。由于被修改的调度节点处于计划性停机状态而不可用,而系统由其他处于可用状态的调度节点所在的分组处理批量数据,才可以实现备用状态的调度节点的可扩展性同时,而不需要中断对外服务,能够解决传统技术中调度节点所包含的处理节点可扩展性较差的问题。
进一步地,针对分组的异步批量交易机器,异步批量交易机器拆分成多个分组,通过上述对每个分组所包含的处理节点的修改,可以实现每个分组可以独立处理数据,也可以合并后同时处理数据,并且不中断对外服务,实现系统的灰度部署。例如,有两个分组,A对应机器123三台机器,B对应机器456三台机器,A可以同时调度123456,B做备用节点,A连接123456的方式和A连接123的方式相同,都是去设置页面中所包含的可连接列表中进行连接,通过456设备的各自接口对456进行连接。对分组的合并是进行分组拆分时逆过程,可以通过人为介入进行设置。调度节点被配置的处理节点可以通过人工由可视化页面进行任意设置,从而能够实现处理节点之间的组合与拆分,以灵活满足处理数据对处理节点的性能需求,例如,数据对处理节点的性能要求较高时,可以将所有处理节点进行配置到同一个调度节点进行调度,若数据对处理节点的性能要求不高时,可以将处理节点进行分组,一个调度节点被配置为不同的处理节点,解决传统技术种,调度处理过程中效率不高且可扩展性较差的问题。
进一步地,调度节点将所述数据中所包含的关键数据通过Socket方式发送给处理节点。具体地,调度节点将所述数据中所包含的关键数据通过Socket发送给处理节点,处理节点根据调度节点传送的Socket所包含的部分数据的标识,处理节点去数据库中获取所述部分数据所归属的全量数据,类似于根据目录获取全文数据,可以避免全量数据传输,以减少顺时的通信数据量,提高通信的效率。例如,基于Netty实现Socket方式发送,基于Netty的通讯保持调度节点和处理节点的关联,能够降低耦合提升性能,其中,Netty是一个基于JAVANIO类库的异步通信框架。Socket是对TCP/IP协议的封装,是应用层与TCP/IP协议族通信的中间软件抽象层,是一组调用接口(TCP/IP网络的API函数)。
进一步地,进行调度节点切换时,当前生效的调度节点自动重新装载前一个生效状态的调度节点的调度数据。具体地,针对在同一时间只有一个调度节点生效的情形,调度节点发生切换时,新的调度节点自动重新装载数据调度相关信息。节点需要切换时自动获取上下文,当前生效的调度节点重新装载调度数据,原来处于生效状态的调度节点现在属于备用节点的调度节点卸载调度数据,即调度节点进行切换时,当前生效的调度节点自动获取前一台机器上装载的调度数据,从而实现调度节点间的切换。
下面以一个具体实施例来描述各个主体之间的交互过程,从而更清楚的描述对于联机批量文件实现异步灰度处理的过程,包括调度控制中心及多个调度节点,包括如下步骤:
步骤1、调度节点按照预设时间周期发送所述调度节点的节点状态信息至调度控制中心,所述节点状态信息包括本节点的状态和繁忙程度;
步骤2、调度控制中心接收所述调度节点的节点状态信息;
步骤3、调度控制中心接收外部终端发送的联机批量文件,并将所述批量文件按照预先设置切分成预设大小的数据块;
步骤4、调度控制中心根据所述调度节点的节点状态信息,发送所述数据块至调度节点:
步骤5、调度节点按照第二预设分配算法发送所述数据块至不同的处理节点,所述调度节点被配置的处理节点,可以由人工通过可视化页面介入从所有处理节点中根据需要进行设置;
步骤6、处理节点处理接收数据块,并对数据块进行处理,以获得子数据处理结果,并将子数据处理结果返回至调度节点;
步骤7、调度节点接收到子数据处理结果后,将所有子数据处理结果作为联机批量文件的总数据处理结果,并将总数据处理结果返还至调度控制中心;
步骤8、调度控制中心接收到总数据处理结果后,将总数据处理结果进行输出,以完成联机批量文件的处理。
需要说明的是,上述各个实施例所述的批量数据处理方法,可以根据需要将不同实施例中包含的技术特征重新进行组合,以获取组合后的实施方案,但都在本申请要求的保护范围之内。
本发明实施例还提供一种批量数据处理系统,所述系统包括调度控制中心,所述调度控制中心控制若干个调度节点,每个所述调度节点调度若干个处理节点;其中,所述调度控制中心用于执行以上各个实施例所描述的应用于调度控制中心的所述批量数据处理方法的步骤,所述调度节点用于执行以上各个实施例所描述的应用于调度节点的所述批量数据处理方法的步骤,所述处理节点用于执行处理数据的步骤。
请参阅图5,图5为本申请实施例提供的应用于调度控制中心的批量数据处理装置的一个示意性框图。对应于上述应用于调度控制中心的所述批量数据处理方法,本申请实施例还提供一种应用于调度控制中心的批量数据处理装置。如图5所示,该应用于调度控制中心的批量数据处理装置包括用于执行上述应用于调度控制中心的所述批量数据处理方法的单元,该应用于调度控制中心的批量数据处理装置可以被配置于服务器端所包含的计算机设备中。具体地,请参阅图5,该应用于调度控制中心的批量数据处理装置500包括第一接收单元501、获取单元502及发送单元503。
其中,第一接收单元501,用于接收外部数据源发送的第一数据;
获取单元502,用于获取预先被标记为生效状态的调度节点作为第一类调度节点;
发送单元503,用于按照第一预设发送方式发送所述第一数据至所述第一类调度节点,以使所述第一类调度节点按照第一预设分配算法分配所述第一数据至自身所调度的处理节点,以使所述处理节点根据所述第一数据所对应的第一预设处理方式对所述第一数据进行处理。
在一个实施例中,所述装置500还包括:
第二接收单元,用于接收所述调度节点对互斥锁的访问请求,所述互斥锁用于保证在同一时间只有一个所述调度节点处于生效状态;
标记单元,用于将取得所述互斥锁的调度节点标记为处于生效状态的调度节点。
在一个实施例中,所述装置500还包括:
第三接收单元,用于接收所述第一类调度节点按照第一预设周期发送的节点状态,所述节点状态包括所述第一类调度节点的繁忙程度信息;
所述发送单元503包括:
判断子单元,用于判断所述第一类调度节点所被调度的所述调度节点的数量;
第一发送子单元,用于若所述第一类调度节点所被调度的所述调度节点为一个,根据所述节点状态,按照第二预设发送方式发送所述第一数据至所述第一类调度节点所被调度的所述调度节点;
第二发送子单元,用于若所述第一类调度节点所被调度的所述调度节点为两个或者两个以上,在第三预设发送方式的基础上,根据每个所述节点状态,按照所述第二预设发送方式将所述第一数据发送至所述第一类调度节点所被调度的每个所述调度节点。
在一个实施例中,所述第二接收单元,用于接收所述调度节点按照预设周期对互斥锁的访问请求。
请参阅图6,图6为本申请实施例提供的应用于调度节点的批量数据处理装置的一个示意性框图。对应于上述应用于调度节点的所述批量数据处理方法,本申请实施例还提供一种应用于调度节点的批量数据处理装置。如图6所示,该应用于调度节点的批量数据处理装置包括用于执行上述应用于调度节点的所述批量数据处理方法的单元,该应用于调度节点的批量数据处理装置可以被配置于服务器端所包含的计算机设备中。具体地,请参阅图6,该应用于调度节点的批量数据处理装置600包括访问单元601、判断单元602、第四接收单元603及分配单元604。
其中,访问单元601,用于发送访问请求至所述调度控制中心所包含的互斥锁,所述互斥锁用于保证在同一时间只有一个所述调度节点处于生效状态;
判断单元602,用于判断是否取得所述互斥锁;
第四接收单元603,用于若取得所述互斥锁,接收所述调度控制中心发送的第二数据;
分配单元604,用于按照第二预设分配算法分配所述第二数据至自身所调度的处理节点,以使所述处理节点根据所述第二数据所对应的第二预设处理方式对所述第二数据进行处理。
在一个实施例中,所述装置600还包括:
第二接收单元,用于接收对所调度的处理节点的修改指令,所述修改指令包括删除处理节点、添加处理节点及更改处理节点的状态;
修改单元,用于根据所述修改指令,对所调度的所述处理节点进行修改。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述批量数据处理装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
同时,上述批量数据处理装置中各个单元的划分和连接方式仅用于举例说明,在其他实施例中,可将批量数据处理装置按照需要划分为不同的单元,也可将批量数据处理装置中各单元采取不同的连接顺序和方式,以完成上述批量数据处理装置的全部或部分功能。
上述批量数据处理装置可以实现为一种计算机程序的形式,该计算机程序可以在如图7所示的计算机设备上运行。
请参阅图7,图7是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备700可以是台式机电脑或者服务器等计算机设备,也可以是其他设备中的组件或者部件。
参阅图7,该计算机设备700包括通过系统总线701连接的处理器702、存储器和网络接口705,其中,存储器可以包括非易失性存储介质703和内存储器704。
该非易失性存储介质703可存储操作系统7031和计算机程序7032。该计算机程序7032被执行时,可使得处理器702执行一种上述批量数据处理方法。
该处理器702用于提供计算和控制能力,以支撑整个计算机设备700的运行。
该内存储器704为非易失性存储介质703中的计算机程序7032的运行提供环境,该计算机程序7032被处理器702执行时,可使得处理器702执行一种上述批量数据处理方法。
该网络接口705用于与其它设备进行网络通信。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图7所示实施例一致,在此不再赘述。
在一个实施例中,以应用于调度控制中心的所述批量数据处理方法为例,其中,所述处理器702用于运行存储在存储器中的计算机程序7032,以实现如下步骤:接收外部数据源发送的第一数据;获取预先被标记为生效状态的调度节点作为第一类调度节点;按照第一预设发送方式发送所述第一数据至所述第一类调度节点,以使所述第一类调度节点按照第一预设分配算法分配所述第一数据至自身所调度的处理节点,以使所述处理节点根据所述第一数据所对应的第一预设处理方式对所述第一数据进行处理。
在一实施例中,所述处理器702在实现所述获取预先被标记为生效状态的调度节点作为第一类调度节点的步骤之前,还实现以下步骤:
接收所述调度节点对互斥锁的访问请求,所述互斥锁用于保证在同一时间只有一个所述调度节点处于生效状态;将取得所述互斥锁的调度节点标记为处于生效状态的调度节点。
在一实施例中,所述处理器702在实现所述按照第一预设发送方式发送所述第一数据至所述第一类调度节点的步骤之前,还实现以下步骤:
接收所述第一类调度节点按照第一预设周期发送的节点状态,所述节点状态包括所述第一类调度节点的繁忙程度信息;
所述处理器702在实现所述按照第一预设发送方式发送所述第一数据至所述第一类调度节点的步骤时,具体实现以下步骤:
判断所述第一类调度节点所被调度的所述调度节点的数量;若所述第一类调度节点所被调度的所述调度节点为一个,根据所述节点状态,按照第二预设发送方式发送所述第一数据至所述第一类调度节点所被调度的所述调度节点;若所述第一类调度节点所被调度的所述调度节点为两个或者两个以上,在第三预设发送方式的基础上,根据每个所述节点状态,按照所述第二预设发送方式将所述第一数据发送至所述第一类调度节点所被调度的每个所述调度节点。
在一实施例中,所述处理器702在实现所述接收所述调度节点对互斥锁的访问请求的步骤时,具体实现以下步骤:
接收所述调度节点按照预设周期对互斥锁的访问请求。
在另一个实施例中,以应用于调度节点的所述批量数据处理方法为例,其中,所述处理器702用于运行存储在存储器中的计算机程序7032,以实现如下步骤:发送访问请求至所述调度控制中心所包含的互斥锁,所述互斥锁用于保证在同一时间只有一个所述调度节点处于生效状态;判断是否取得所述互斥锁;若取得所述互斥锁,接收所述调度控制中心发送的第二数据;按照第二预设分配算法分配所述第二数据至自身所调度的处理节点,以使所述处理节点根据所述第二数据所对应的第二预设处理方式对所述第二数据进行处理。
在一实施例中,所述处理器702在实现所述按照第二预设分配算法分配所述第二数据至自身所调度的处理节点的步骤之前,还实现以下步骤:
接收对所调度的处理节点的修改指令,所述修改指令包括删除处理节点、添加处理节点及更改处理节点的状态;根据所述修改指令,对所调度的所述处理节点进行修改。
应当理解,在本申请实施例中,处理器702可以是中央处理单元(CentralProcessingUnit,CPU),该处理器702还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来完成,该计算机程序可存储于一计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本申请还提供一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,该计算机可读存储介质存储有第一计算机程序,该第一计算机程序被处理器执行时使处理器执行如下步骤:
一种计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的应用于调度控制中心的所述批量数据处理方法的步骤。
本申请还提供另外一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,该计算机可读存储介质存储有第二计算机程序,该第二计算机程序被处理器执行时使处理器执行如下步骤:
一种计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的应用于调度节点的所述批量数据处理方法的步骤。
所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述存储介质为实体的、非瞬时性的存储介质,例如可以是U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储计算机程序的实体存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
以上所述,仅为本申请的具体实施方式,但本申请明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种批量数据处理方法,其特征在于,所述方法应用于调度控制中心,所述调度控制中心控制若干个调度节点,每个所述调度节点调度若干个处理节点,所述方法包括:
接收外部数据源发送的第一数据;
获取预先被标记为生效状态的调度节点作为第一类调度节点;
按照第一预设发送方式发送所述第一数据至所述第一类调度节点,以使所述第一类调度节点按照第一预设分配算法分配所述第一数据至自身所调度的处理节点,以使所述处理节点根据所述第一数据所对应的第一预设处理方式对所述第一数据进行处理。
2.根据权利要求1所述批量数据处理方法,其特征在于,所述获取预先被标记为生效状态的调度节点作为第一类调度节点的步骤之前,还包括:
接收所述调度节点对互斥锁的访问请求,所述互斥锁用于保证在同一时间只有一个所述调度节点处于生效状态;
将取得所述互斥锁的调度节点标记为处于生效状态的调度节点。
3.根据权利要求1或者2所述批量数据处理方法,其特征在于,所述按照第一预设发送方式发送所述第一数据至所述第一类调度节点的步骤之前,还包括:
接收所述第一类调度节点按照第一预设周期发送的节点状态,所述节点状态包括所述第一类调度节点的繁忙程度信息;
所述按照第一预设发送方式发送所述第一数据至所述第一类调度节点的步骤包括:
判断所述第一类调度节点所被调度的所述调度节点的数量;
若所述第一类调度节点所被调度的所述调度节点为一个,根据所述节点状态,按照第二预设发送方式发送所述第一数据至所述第一类调度节点所被调度的所述调度节点;
若所述第一类调度节点所被调度的所述调度节点为两个或者两个以上,在第三预设发送方式的基础上,根据每个所述节点状态,按照所述第二预设发送方式将所述第一数据发送至所述第一类调度节点所被调度的每个所述调度节点。
4.根据权利要求2所述批量数据处理方法,其特征在于,所述接收所述调度节点对互斥锁的访问请求的步骤包括:
接收所述调度节点按照预设周期对互斥锁的访问请求。
5.一种批量数据处理方法,其特征在于,所述方法应用于调度节点,所述调度节点受控于调度控制中心,所述调度控制中心控制若干个调度节点,每个所述调度节点调度若干个处理节点,所述方法包括:
发送访问请求至所述调度控制中心所包含的互斥锁,所述互斥锁用于保证在同一时间只有一个所述调度节点处于生效状态;
判断是否取得所述互斥锁;
若取得所述互斥锁,接收所述调度控制中心发送的第二数据;
按照第二预设分配算法分配所述第二数据至自身所调度的处理节点,以使所述处理节点根据所述第二数据所对应的第二预设处理方式对所述第二数据进行处理。
6.根据权利要求5所述批量数据处理方法,其特征在于,所述按照第二预设分配算法分配所述第二数据至自身所调度的处理节点的步骤之前,还包括:
接收对所调度的处理节点的修改指令,所述修改指令包括删除处理节点、添加处理节点及更改处理节点的状态;
根据所述修改指令,对所调度的所述处理节点进行修改。
7.一种批量数据处理装置,其特征在于,包括用于执行如权利要求1-4任一项所述方法的单元,或者是包括用于执行如权利要求5-6任一项所述方法的单元。
8.一种批量数据处理系统,其特征在于,所述系统包括调度控制中心,所述调度控制中心控制若干个调度节点,每个所述调度节点调度若干个处理节点;
其中,所述调度控制中心用于执行如权利要求1-4任一项所述方法的步骤,所述调度节点用于执行如权利要求5-6任一项所述方法的步骤,所述处理节点用于执行根据所接收到的分配数据所对应的预设处理方式对所述分配数据进行处理的步骤。
9.一种计算机设备,其特征在于,所述计算机设备包括第一存储器以及与所述第一存储器相连的第一处理器或者是包括第二存储器以及与所述第二存储器相连的第二处理器;所述第一存储器用于存储第一计算机程序,所述第二存储器用于存储第二计算机程序;所述第一处理器用于运行所述第一计算机程序,以执行如权利要求1-4任一项所述方法的步骤,所述第二处理器用于运行所述第二计算机程序以执行如权利要求5-6任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有第一计算机程序和/或第二计算机程序,所述第一计算机程序被处理器执行时可实现如权利要求1-4中任一项所述方法的步骤,所述第二计算机程序被处理器执行时可实现如权利要求5-6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010123547.6A CN111414241A (zh) | 2020-02-27 | 2020-02-27 | 批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010123547.6A CN111414241A (zh) | 2020-02-27 | 2020-02-27 | 批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111414241A true CN111414241A (zh) | 2020-07-14 |
Family
ID=71491006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010123547.6A Pending CN111414241A (zh) | 2020-02-27 | 2020-02-27 | 批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414241A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000451A (zh) * | 2020-08-19 | 2020-11-27 | 中国建设银行股份有限公司 | 批量作业调度系统、方法、设备及存储介质 |
CN112766768A (zh) * | 2021-01-26 | 2021-05-07 | 云账户技术(天津)有限公司 | 合同流程管理方法、装置、电子设备以及可读存储介质 |
CN113391895A (zh) * | 2021-06-11 | 2021-09-14 | 中国工商银行股份有限公司 | 批量任务处理调度方法、装置及系统 |
CN113762954A (zh) * | 2021-09-08 | 2021-12-07 | 百果园技术(新加坡)有限公司 | 一种热点账号交易处理方法、装置、电子设备及存储介质 |
CN113992684A (zh) * | 2021-10-26 | 2022-01-28 | 中电金信软件有限公司 | 发送数据的方法、装置、处理节点、存储介质及系统 |
-
2020
- 2020-02-27 CN CN202010123547.6A patent/CN111414241A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000451A (zh) * | 2020-08-19 | 2020-11-27 | 中国建设银行股份有限公司 | 批量作业调度系统、方法、设备及存储介质 |
CN112766768A (zh) * | 2021-01-26 | 2021-05-07 | 云账户技术(天津)有限公司 | 合同流程管理方法、装置、电子设备以及可读存储介质 |
CN113391895A (zh) * | 2021-06-11 | 2021-09-14 | 中国工商银行股份有限公司 | 批量任务处理调度方法、装置及系统 |
CN113391895B (zh) * | 2021-06-11 | 2024-05-24 | 中国工商银行股份有限公司 | 批量任务处理调度方法、装置及系统 |
CN113762954A (zh) * | 2021-09-08 | 2021-12-07 | 百果园技术(新加坡)有限公司 | 一种热点账号交易处理方法、装置、电子设备及存储介质 |
CN113992684A (zh) * | 2021-10-26 | 2022-01-28 | 中电金信软件有限公司 | 发送数据的方法、装置、处理节点、存储介质及系统 |
CN113992684B (zh) * | 2021-10-26 | 2022-10-28 | 中电金信软件有限公司 | 发送数据的方法、装置、处理节点、存储介质及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414241A (zh) | 批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质 | |
US20180343208A1 (en) | Method and apparatus for disaggregated overlays via application services profiles | |
CA3168286A1 (en) | Data flow processing method and system | |
US7890712B2 (en) | Method, apparatus and program product for managing memory in a virtual computing system | |
CN111209110B (zh) | 一种实现负载均衡的任务调度管理方法、系统和存储介质 | |
US20210117219A1 (en) | Service Provision System, Resource Allocation Method, and Resource Allocation Program | |
JP6615761B2 (ja) | 分散データグリッドにおいて非同期呼出をサポートするためのシステムおよび方法 | |
CN109495540B (zh) | 一种数据处理的方法、装置、终端设备及存储介质 | |
CN113064744A (zh) | 任务处理方法、装置、计算机可读介质及电子设备 | |
CN113886089A (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
CN111158949A (zh) | 容灾架构的配置方法、切换方法及装置、设备和存储介质 | |
CN111538585B (zh) | 一种基于node.js的服务器进程调度方法、系统和装置 | |
CN111459642A (zh) | 一种分布式系统中故障处理和任务处理方法及装置 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN114615308A (zh) | 基于rpc的异步多线程并发网络通讯方法及装置 | |
CN112162839A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
WO2020252724A1 (zh) | 日志处理方法、设备及计算机可读存储介质 | |
JP3197279B2 (ja) | 業務引継システム | |
CN110569124A (zh) | 一种任务分配方法和装置 | |
CN113971098A (zh) | 一种RabbitMQ消费管理方法及系统 | |
CN116719623A (zh) | 作业调度方法、作业结果处理方法及其装置 | |
CN116954816A (zh) | 容器集群控制方法、装置、设备及计算机存储介质 | |
CN116401024A (zh) | 基于云计算的集群扩缩容方法、装置、设备及介质 | |
CN113032107B (zh) | 一种云数据库的资源管理方法、装置及系统 | |
Lung et al. | An infrastructure for adaptive fault tolerance on FT-CORBA |
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 |