掌桥专利:专业的专利平台
掌桥专利
首页

一种多通道分组并发配置方法

文献发布时间:2024-04-18 19:58:30


一种多通道分组并发配置方法

技术领域

本申请涉及互联网应用技术领域,具体而言,涉及一种多通道分组并发配置方法。

背景技术

在银行的自动扣款服务中,一般存在3个核心模块:支持自动发起扣款任务的批量服务模块、支持对单个用户贷款进行扣款的服务模块、多通道路由模块。

随着互联网时代的普及以及银行数字化转型的进行,越来越多用户选择线上贷款,并设置银行自动还款。为应对大批量数据的处理,一般会启用多台机器,单机器开始多线程的方式去保证所有数据在规定时间内得到处理。其中,机器数量肯定越多越好,但是多一台机器,就多一份成本,预算充足就多启用机器。现在用户一般会绑定多个他行的银行卡作为自动扣款的还款卡,也就要求银行需要根据用户的卡开户行调用不同的支付通道去进行扣款操作,因此,需要用到多通道路由模块;但是,每个通道支持的并发是不同的,有些通道处理速度快,支持的并发高,对这些通道,应该多分配扣款请求;而,有些通道处理速度慢,慢的通道就应该少分配扣款请求。所以,单纯的开多线程无法解决多通道并发配置的问题,需要根据不同通道的并发数配置不同的多线程策略,这里引出第一个问题:如何为批量扣款服务针对不同并发的通道配置不同的多线程并发策略。

每台机器或者说每个模块都是有TPS(每秒处理数量)上限的,批量自动扣款模块总并发数配置高了,下游模块无法处理,全部超时丢弃;总并发数少了,浪费机器资源,大大降低了自动扣款处理能力,这里引出第二个问题:如何更合理的为批量扣款服务模块配置多线程并发策略。

然而,目前还没有相关技术或模型能直接计算出如何合理的配置并发策略,只能通过了解下游一个最大支持并发,以及各通道得并发,猜测一个合理配置,然后通过在测试环境演练得方式,来验证配置是否合理;如果不合理,再根据个人经验调整参数,继续测试。最终获得一组合理的配置。其中,单次演练就非常耗费时间和资源,整个过程需要耗时近3周。这种人工配置的方式,需要人工对配置不断试错,耗时大量时间、资源,导致效率低下,并且,通过个人经验判断配置,对复杂的数量变动关系单凭人脑记忆和判断,容易出现疏漏和失误,人工的经验判断很受个人经验、情绪等影响,会产生主观片面性。

发明内容

本申请实施例的目的在于提供一种多通道分组并发配置方法,用以解决人工进行多通道并发数配置导致效率低,容易疏漏和失误,以及存在主观片面性的问题。

本申请实施例提供的一种多通道分组并发配置方法,业务系统包括批量服务模块、单通道处理模块和多通道路由模块,批量服务模块用于批量发起任务,单通道处理模块用于对每一任务提供处理服务,多通道路由模块用于对每一处理服务调用不同的处理通道进行处理;

方法应用于批量服务模块,方法包括:

获取单通道处理模块的最大并发数;获取多通道路由模块的每一通道最大并发数以及总的最大并发数;获取批量服务模块的机器的数量;获取多通道路由模块的每一通道的数据量在多通道路由模块的总数据量中的通道数据量占比;

根据单通道处理模块的最大并发数和多通道路由模块的最大并发数,确定最大总并发数,并得到配置并发数据与最大总并发数的第一约束条件;根据批量服务模块的机器的数量以及每一通道最大并发数,得到配置并发数据与单机器对应每一通道的配置并发数的第二约束条件;根据多通道路由模块的每一通道的数据量在多通道路由模块的总数据量中的通道数据量占比,得到配置并发数据与通道数据量占比的第三约束条件;

获取满足第一约束条件、第二约束条件和第三约束条件且使单机器的配置的总并发数最大时单机器对应每一通道的配置并发数的值,并进行配置。

上述技术方案中,业务系统中的批量服务模块、单通道处理模块和多通道路由模块三个模块组成一个同步的流程,互相依赖制约,批量服务模块作为最上层服务,请求的发起方,批量服务模块的总并发就是整个业务流程的总并发。通过设计约束条件,并根据这些约束条件,求取使单机器的配置的总并发数最大时,单机器对应每一通道的配置并发数的值,并进行准确的并发配置,提高了系统效率,避免手动进行并发数配置容易疏漏和失误以及存在主观片面性的问题。

在一些可选的实施方式中,根据单通道处理模块的最大并发数和多通道路由模块的最大并发数,确定最大总并发数,包括:

根据单通道处理模块的最大并发数PC1和多通道路由模块的最大并发数PC2中的最小值,确定为批量服务模块配置的最大总并发数PC0;

第一约束条件,包括:所有机器的每一通道的配置并发数之和小于或等于最大总并发数。

上述技术方案中,根据木桶原理,整个业务流程的并发,取决与流程中最短板的一个模块,从而得到第一约束。

在一些可选的实施方式中,第二约束条件,包括:单机器针对每一通道的配置并发数小于或等于对应通道的最大并发数与机器数量的比值。

上述技术方案中,在业务系统中采用分布式架构,批量服务模块有多个一样的机器同时去处理数据,而,最终的并发分组是均匀的分布在每一台机器上的,单机器的并发配置只能是正整数,从而得到第二约束。

在一些可选的实施方式中,第三约束条件,包括:单机器的每一通道的配置并发数在单机器的总配置并发数中的占比与对应的通道数据量占比一致。

上述技术方案中,由于多通道路由模块中各个通道需要处理的数据量不同,数据量占比应该与并发配置成正比,而不是通道支持并发越高,就配越多,从而得到第三约束。

在一些可选的实施方式中,获取多通道路由模块的每一通道最大并发数以及总的最大并发数,包括:

判断多通道路由模块中每一通道的通道数据量占比是否小于阈值;

若第一通道的通道数据量占比小于阈值,则将第一通道与数据量占比大于阈值的第二通道合并为一个通道,对合并通道进行并发数的配置。

上述技术方案中,由于多通道路由模块中部分通道的数据量较少,若是对这些数据量较少的通道仍然配置单独的并发分组,那么这些通道在短时间内就会将数据处理完毕,并释放资源,这部分资源不会被正在运行的并发分组所使用,造成资源的浪费,因此,本实施例中增加了通道合并的步骤。

在一些可选的实施方式中,将第一通道与数据量占比大于阈值的第二通道合并为一个通道,包括:

获取通道数据量占比最大的第三通道,将至少一个第一通道与第三通道进行合并。

在一些可选的实施方式中,获取多通道路由模块的每一通道最大并发数以及总的最大并发数,包括:

获取第一机房需要处理的数据量在数据总量中的第一机房占比;

根据第一机房占比以及每一通道最大并发数,确定第一机房的每一通道最大并发数;第一机房的每一通道最大并发数,用于计算第一机房的单机器对应每一通道的配置并发数的值。

在一些可选的实施方式中,获取多通道路由模块的每一通道最大并发数以及总的最大并发数,包括:

获取第二机房需要处理的数据量在剩余数据总量中的第二机房占比;

根据第二机房占比、每一通道在其他机房已配置的并发数以及每一通道最大并发数,确定第二机房的每一通道最大并发数;第二机房的每一通道最大并发数,用于计算第二机房的单机器对应每一通道的配置并发数的值。

上述技术方案中,由于业务系统中的数据分布在多个机房,有些下游模块的通道并发是针对整个银行请求的,该通道的并发需要分配给各个机房,本实施例中根据该通道在各个机房需要处理的数据量在数据总量中的占比来进行分配。

本申请实施例提供的一种电子设备,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如以上任一所述的方法。

本申请实施例提供的一种计算机可读存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如以上任一所述的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的业务系统的功能模块示意图;

图2为本申请实施例一提供的一种多通道分组并发配置方法;

图3为本申请实施例二提供的一种多通道分组并发配置方法;

图4为本申请实施例三提供的一种多通道分组并发配置方法;

图5为本申请实施例提供的电子设备的一种可能的结构示意图。

图标:51-处理器,52-存储器,53-通信接口,54-通信总线。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

本申请实施例提供一种用于业务系统的并发配置方案,请参照图1,图1为本申请实施例提供的业务系统的功能模块示意图,业务系统包括批量服务模块、单通道处理模块和多通道路由模块,批量服务模块用于批量发起任务,单通道处理模块用于对每一任务提供处理服务,多通道路由模块用于对每一处理服务调用不同的处理通道进行处理。批量服务模块进行批量发起任务的过程中,涉及单通道处理模块和多通道路由模块的并发数配置,由于单通道处理模块对每一任务提供处理服务,再通过多通道路由模块调用不同的处理通道进行处理,需要将单通道处理模块的并发数配置为与多通道路由模块的总并发数一致,其中,多通道路由模块的总并发数等于其所有通道的并发数之和。

因此,本申请的一个或多个实施例提供了一种多通道分组并发配置方法,在批量服务模块进行多通道路由模块的分组并发配置,即进行多通道路由模块的每一通道的并发数配置。在确定了多通道路由模块的每一通道的并发数配置的同时,也确定了单通道路由模块的并发数配置为多通道路由模块的所有通道的并发数之和。

在本申请的一个或多个实施例中,以银行的自动扣款服务为例进行举例说明。在银行自动扣款相关的业务系统中,包括:支持自动发起批量扣款任务的批量服务模块,支持对单个用户贷款进行扣款的单通道处理模块,以及根据用户的卡开户行调用不同的支付通道去进行扣款操作的多通道路由模块。本实施例的业务系统,所针对的场景为,用户选择线上贷款,并设置银行自动还款的场景。为了应对大批量数据的处理,批量服务模块一般包括多个机器,并且,单机器以多线程的方式对数据进行处理,以保证所有数据能够在规定时间内得到处理,需明确的是,也可以采用一台机器,这台机器以多线程的方式对数据进行处理。

下面,针对批量服务模块进行多通道并发配置的多种情况分别详细阐述如下:

实施例一请参照图2,图2为本申请实施例一提供的一种多通道分组并发配置方法,该方法应用于批量服务模块,该方法具体包括:

步骤110、获取单通道处理模块的最大并发数PC1;获取多通道路由模块的每一通道最大并发数A

其中,自动扣款服务是银行内部服务,上述的这些数据,银行内部可以直接获取到。

步骤120、根据单通道处理模块的最大并发数和多通道路由模块的最大并发数,确定最大总并发数,并得到配置并发数据与最大总并发数的第一约束条件;根据批量服务模块的机器的数量,以及每一通道最大并发数,得到配置并发数据与单机器对应每一通道的配置并发数的第二约束条件;根据多通道路由模块的每一通道的数据量在多通道路由模块的总数据量中的通道数据量占比,得到配置并发数据与通道数据量占比的第三约束条件;

其中,根据单通道处理模块的最大并发数和多通道路由模块的最大并发数,确定最大总并发数,包括:根据单通道处理模块的最大并发数PC1和多通道路由模块的最大并发数PC2中的最小值,确定为批量服务模块配置的最大总并发数PC0,即:

PC0 = MIN(PC1,PC2)

本实施例中多通道路由模块具有n个通道,PC2=

第一约束条件,具体为:所有机器的每一通道的配置并发数之和小于或等于最大总并发数。

第一约束条件,即:C×

第二约束条件,具体为:单机器针对每一通道的配置并发数小于或等于对应通道的最大并发数与机器数量的比值。

第二约束条件,即:B

获取多通道路由模块的每一通道的数据量在多通道路由模块的总数据量中的占比:D

第三约束条件,包括:单机器的每一通道的配置并发数在单机器的总配置并发数中的占比与对应的通道数据量占比一致。

第三约束条件,即:B

合并第一约束条件、第二约束条件和第三约束条件,得到第一合并约束条件:

B

步骤130、获取满足第一约束条件、第二约束条件和第三约束条件且使单机器的配置的总并发数最大时单机器对应每一通道的配置并发数的值,并进行配置。

本实施例中,满足第一合并约束条件且使得

综上所述,业务系统中的批量服务模块、单通道处理模块和多通道路由模块三个模块组成一个同步的流程,互相依赖制约,批量服务模块作为最上层服务,请求的发起方,批量服务模块的总并发就是整个业务流程的总并发。根据木桶原理,整个业务流程的并发,取决与流程中最短板的一个模块,从而得到第一约束。又,在业务系统中采用分布式架构,批量服务模块有多个一样的机器同时去处理数据,而,最终的并发分组是均匀的分布在每一台机器上的,单机器的并发配置只能是正整数,从而得到第二约束。再,由于多通道路由模块中各个通道需要处理的数据量不同,数据量占比应该与并发配置成正比,而不是通道支持并发越高,就配越多,从而得到第三约束。根据这些约束条件,求取使单机器的配置的总并发数最大时,单机器对应每一通道的配置并发数的值,并进行准确的并发配置,提高了系统效率,避免手动进行并发数配置容易疏漏和失误以及存在主观片面性的问题。

实施例二请参照图3,图3为本申请实施例二提供的一种多通道分组并发配置方法,实施例二与实施例一的区别在于,实施例二的多通道路由模块中部分通道的数据量较少,若是对这些数据量较少的通道仍然配置单独的并发分组,那么这些通道在短时间内就会将数据处理完毕,并释放资源,这部分资源不会被正在运行的并发分组所使用,造成资源的浪费,因此,本实施例中增加了通道合并的步骤,具体包括:

实施例二提供的一种多通道分组并发配置方法具体包括:

步骤210、获取单通道处理模块的最大并发数PC1;获取批量服务模块的机器的数量C。

获取多通道路由模块的每一原始通道的最大并发数以及总的最大并发数;判断多通道路由模块中每一原始通道的通道数据量占比是否小于阈值;其中,通道数据量占比的计算方式为:通道的数据量在所有通道的总数据量中的占比。

若第一通道的通道数据量占比小于阈值,则将第一通道与数据量占比大于阈值的第二通道合并为一个通道,对合并通道进行并发数的配置。也就是说,需要将数据量较少的通道与数据量较大的通道进行合并。

具体地,在进行通道合并时,本实施例中将通道数据量占比小于阈值的所有通道,均与通道数据量占比最大的通道进行合并,其原因是最大并发数越大的通道,最终空余的概率更大。

将通道合并后的通道称为新通道,得到每一新通道的最大并发数。

获取多通道路由模块的每一新通道的数据量D

步骤220、根据单通道处理模块的最大并发数和多通道路由模块的最大并发数,确定最大总并发数,并得到配置并发数据与最大总并发数的第一约束条件;根据批量服务模块的机器的数量,以及每一新通道最大并发数,得到配置并发数据与单机器对应每一新通道的配置并发数的第二约束条件;根据多通道路由模块的每一新通道的数据量在多通道路由模块的总数据量中的新通道数据量占比,得到配置并发数据与新通道数据量占比的第三约束条件;

其中,根据单通道处理模块的最大并发数和多通道路由模块的最大并发数,确定最大总并发数,包括:根据单通道处理模块的最大并发数PC1和多通道路由模块的最大并发数PC2中的最小值,确定为批量服务模块配置的最大总并发数PC0,即:

PC0 = MIN(PC1,PC2)

本实施例中多通道路由模块原本具有n个新通道,进行通道合并后有m个通道,m小于n,PC2=

第一约束条件,具体为:所有机器的每一新通道的配置并发数之和小于或等于最大总并发数。

第一约束条件,即:C×

第二约束条件,具体为:单机器针对每一新通道的配置并发数小于或等于对应新通道的最大并发数与机器数量的比值。

第二约束条件,即:B

获取多通道路由模块的每一新通道的数据量在多通道路由模块的总数据量中的占比:D

第三约束条件,包括:单机器的每一新通道的配置并发数在单机器的总配置并发数中的占比与对应的新通道数据量占比一致。

第三约束条件,即:B

合并第一约束条件、第二约束条件和第三约束条件,得到第二合并约束条件:

B

步骤230、获取满足第一约束条件、第二约束条件和第三约束条件且使单机器的配置的总并发数最大时单机器对应每一新通道的配置并发数的值,并进行配置。

本实施例中,满足第二合并约束条件且使得

实施例三请参照图4,图4为本申请实施例三提供的一种多通道分组并发配置方法,实施例三与实施例一的区别在于,实施例三的银行数据分布在多个机房,有些下游模块的通道并发是针对整个银行请求的,该通道的并发需要分配给各个机房,本实施例中根据该通道在各个机房需要处理的数据量在数据总量中的占比来进行分配。具体的分组并发配置方法,包括:

步骤310、获取单通道处理模块的最大并发数PC1;获取批量服务模块的机器的数量C;获取多通道路由模块的每一通道的数据量D

获取多通道路由模块的每一通道最大并发数A

根据机房数据量占比a1、每一通道在其他机房已配置的并发数a2以及每一通道最大并发数A

即,当前机房的每一通道最大并发数A

A

之后,根据当前机房的每一通道最大并发数A

步骤320、根据单通道处理模块的最大并发数和多通道路由模块的最大并发数,确定最大总并发数,并得到配置并发数据与最大总并发数的第一约束条件;根据批量服务模块的机器的数量,以及每一通道最大并发数,得到配置并发数据与当前机房的单机器对应每一通道的配置并发数的第二约束条件;根据多通道路由模块的每一通道的数据量在多通道路由模块的总数据量中的通道数据量占比,得到配置并发数据与通道数据量占比的第三约束条件;

其中,根据单通道处理模块的最大并发数和多通道路由模块的最大并发数,确定最大总并发数,包括:根据单通道处理模块的最大并发数PC1和多通道路由模块的最大并发数PC2中的最小值,确定为批量服务模块配置的最大总并发数PC0,即:

PC0 = MIN(PC1,PC2)

本实施例中多通道路由模块具有n个通道,PC2=

第一约束条件,具体为:所有机器的每一通道的配置并发数之和小于或等于最大总并发数。

第一约束条件,即:C×

第二约束条件,具体为:当前机房的单机器针对每一通道的配置并发数小于或等于对应通道的最大并发数与机器数量的比值。

第二约束条件,即:B

获取多通道路由模块的每一通道的数据量在多通道路由模块的总数据量中的占比:D

第三约束条件,包括:当前机房的单机器的每一通道的配置并发数在当前机房的单机器的总配置并发数中的占比与对应的通道数据量占比一致。

第三约束条件,即:B

合并第一约束条件、第二约束条件和第三约束条件,得到第三合并约束条件:

B

步骤330、获取满足第一约束条件、第二约束条件和第三约束条件且使当前机房的单机器的配置的总并发数最大时当前机房的单机器对应每一通道的配置并发数的值,并进行配置。

本实施例中,满足第三合并约束条件且使得

图5示出了本申请实施例提供的电子设备的一种可能的结构。参照图5,电子设备包括:处理器51、存储器52和通信接口53,这些组件通过通信总线54和/或其他形式的连接机构(未示出)互连并相互通讯。

其中,存储器52包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read-Only Memory,简称EEPROM)等。处理器51以及其他可能的组件可对存储器52进行访问,读和/或写其中的数据。

处理器51包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器51可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(Network Processor,简称NP)或者其他常规处理器;还可以是专用处理器,包括神经网络处理器(Neural-network Processing Unit,简称NPU)、图形处理器(Graphics ProcessingUnit,简称GPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuits,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器51为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。

通信接口53包括一个或多个(图中仅示出一个),可以用于和其他设备进行直接或间接地通信,以便进行数据的交互。通信接口53可以包括进行有线和/或无线通信的接口。

在存储器52中可以存储一个或多个计算机程序指令,处理器51可以读取并运行这些计算机程序指令,以实现本申请实施例提供的方法。

可以理解的,图5所示的结构仅为示意,电子设备还可以包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的结构。图5中所示的各组件可以采用硬件、软件或其组合实现。电子设备可能是实体设备,例如PC机、笔记本电脑、平板电脑、手机、服务器、嵌入式设备等,也可能是虚拟设备,例如虚拟机、虚拟化容器等。并且,电子设备也不限于单台设备,也可以是多台设备的组合或者大量设备构成的集群。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机的处理器读取并运行时,执行本申请实施例提供的方法。例如,计算机可读存储介质可以实现为图5中电子设备中的存储器52。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种多路并发数据分组挖掘与统计方法
  • 一种多客户端协同分组并发冲突及权限处理方法
技术分类

06120116501610