分布式批量应用程序快速接入方法和装置与流程
未命名
08-22
阅读:115
评论:0

1.本发明涉及分布式架构技术领域,可用于金融领域,尤其涉及一种分布式批量应用程序快速接入方法和装置。
背景技术:
2.在分布式技术领域,随着主机业务的下移,分布式批量框架(dbf)承载越来越多的核心应用,其重要程度与日俱增。根据dbf运行统计数据,可以推测所有应用的资源消耗很大,且有持续增长的趋势。通过批量任务函数化的方式,可实现批量作业随用随启、不用销毁,可以较好地提高分布式批量程序的资源利用率。
3.但目前批量函数化的方案大都专注于函数平台架构上的设计,并未涉及到应用如何落地,即应用如何接入函数平台。目前存量的分布式批量程序要接入函数平台,通常要经过不小的代码改造,如将各作业拆分成一个个方法,改动业务代码逻辑,这不仅会降低接入的便利性及接入效率,还会增加业务程序本身的风险。
技术实现要素:
4.有鉴于此,本发明提供一种分布式批量应用程序快速接入方法和装置,以解决上述提及的至少一个问题。
5.为了实现上述目的,本发明采用以下方案:
6.根据本发明的第一方面,提供一种分布式批量应用程序快速接入方法,所述方法包括:获取应用程序的函数配置文件和分层参数文件;根据所述函数配置文件和所述分层参数文件向zookeeper注册函数信息,并调用函数计算平台接口创建函数;监听所述zookeeper的作业执行信息,依据所述作业执行信息触发所述函数计算平台接口启动函数程序实例来执行作业;接收所述函数计算平台返回的作业执行完成信息,将所述作业执行完成信息写入所述zookeeper。
7.根据本发明的第二方面,提供一种分布式批量应用程序快速接入装置,所述装置包括:文件获取单元,用于获取应用程序的函数配置文件和分层参数文件;函数注册单元,用于根据所述函数配置文件和所述分层参数文件向zookeeper注册函数信息;函数创建单元,用于调用函数计算平台接口创建函数;监听触发单元,用于监听所述zookeeper的作业执行信息,依据所述作业执行信息触发所述函数计算平台接口启动函数程序实例来执行作业;写入单元,用于接收所述函数计算平台返回的作业执行完成信息,将所述作业执行完成信息写入所述zookeeper。
8.根据本发明的第三方面,提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,处理器执行所述计算机程序时实现上述方法的步骤。
9.根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
10.由上述技术方案可知,本发明提供的分布式批量应用程序快速接入方法和装置,优化了现有dbf平台架构的设计,通过引入serverlessdbf管理模块,只需完成函数配置等少量非代码改造,不仅可以完成批量应用程序落地函数平台,更能很大程度减小存量分布式批量应用程序接入函数平台的改造难度,实现批量应用程序快速接入并运行于函数平台。
附图说明
11.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
12.图1是本技术实施例提供的一种分布式批量应用程序快速接入系统的结构图;
13.图2是本技术实施例提供的一种分布式批量应用程序快速接入方法的流程示意图;
14.图3是本技术另一实施例提供的一种分布式批量应用程序快速接入方法的流程示意图;
15.图4是本技术实施例提供的一种分布式批量应用程序快速接入装置的结构示意图;
16.图5是本技术另一实施例提供的一种分布式批量应用程序快速接入装置的结构示意图;
17.图6是本技术实施例提供的电子设备的系统构成示意框图。
具体实施方式
18.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
19.由于目前存量的分布式批量程序要接入函数平台,通常要经过不小的代码改造,这种代码改造涉及到业务代码逻辑的改动,这不仅会降低接入的便利性及接入效率,还会增加业务程序本身的风险。因此本技术的目的在于提供一种分布式批量应用程序快速接入方法和装置,来客服现有函数平台无法使应用快速落地的问题。
20.如图1所示为本技术实施例提供的一种分布式批量应用程序快速接入系统的结构图,由图1可见,该系统可以包括如下几个部分:serverlessdbf管理模块110、zookeeper模块120、函数计算平台130、批量控制模块140,所述serverlessdbf管理模块110分别和zookeeper模块120级函数计算平台130相连,zookeeper模块120和批量控制模块140相连,其中批量控制模块140又可以包括:批量控制台141、批量数据库142和批量控制器143。
21.在旧有的dbf平台中,每个应用的分布式批量程序是运行在paas平台的,这些程序自己申请机器去运行,所以这些机器需要保持24小时不停运转,以保证可以及时监听并处理dbf平台下发的指令。本技术则是基于serverless来实现的,serverless指这些批量程序转移至了函数平台运行,借助函数平台随用随启的能力,只在程序真正执行任务时才被分
配cpu等资源,否则不分配,如此可以大幅节省资源。
22.基于图1的系统结构,下面从serverlessdbf管理模块110侧对本技术的分布式批量应用程序快速接入流程进行说明,如图2所示为本技术实施例提供的一种分布式批量应用程序快速接入方法的流程示意图,该方法包括如下步骤:
23.步骤s201:获取应用程序的函数配置文件和分层参数文件。
24.这里的应用程序的函数配置文件和分层参数文件,是由应用程序提供方所提供的,在本实施中,可以由应用程序提供方人员在指定界面完成函数配置文件和分层参数文件完成各种参数的填写,从而形成函数配置文件和分层参数文件。在形成函数配置文件和分层参数文件后,可以从serverlessdbf管理模块110的前台进行文件导入,从而使得serverlessdbf管理模块110获取到这两个文件。
25.优选的,上述函数配置文件可以包括:应用名、作业分组编号、批次号、镜像号、超时时间、内存大小和函数描述中的一种或多种。
26.而上述分层参数文件可以包括:镜像运行所需的变量和所述变量对应的值。镜像是指一个需要在docker技术下运行的程序包,可以简单的理解为一个可运行的软件。变量指这个软件在运行时需要的一些参数,这些参数可以在程序运行前由人工指定,所以每次运行都可以变动。比如变量:env_serverless_switch=true,前者是变量(参数)的代号,后者是变量(参数)的值,前者不可以改变,后者每次程序运行前可由人工改变。
27.步骤s202:根据所述函数配置文件和所述分层参数文件向zookeeper注册函数信息,并调用函数计算平台接口创建函数。
28.在本实施例中,zookeeper是信息的存储介质,主要用于模块及平台间的信息交互存储,函数计算平台主要用于函数计算平台130主要用于接收来自serverlessdbf管理模块110的指令,然后启动容器来运行dbf作业,当然,本实施例zookeeper模块120也可以采用kafka来实现。
29.步骤s203:监听所述zookeeper的作业执行信息,依据所述作业执行信息触发所述函数计算平台接口启动函数程序实例来执行作业。
30.步骤s204:接收所述函数计算平台返回的作业执行完成信息,将所述作业执行完成信息写入所述zookeeper。
31.上述步骤s203和步骤s204即为应用程序批量作业的运行步骤,serverlessdbf管理模块110通过监听zookeeper的作业执行信息来触发函数计算平台接口启动函数程序实例来执行作业,并将作业执行完成信息写入zookeeper。使得本技术可以完成分布式批量应用程序快速接入函数平台的目的。在具体实现的时候,上述步骤s203和步骤s204可以通过开发一软件开发工具包(software development kit,sdk)来予以实现,该sdk支持函数计算平台和serverlessdbf管理模块之间的交互。
32.由上述技术方案可知,本发明提供的分布式批量应用程序快速接入方法和装置,优化了现有dbf平台架构的设计,通过引入serverlessdbf管理模块,只需完成函数配置等少量非代码改造,不仅可以完成批量应用程序落地函数平台,更能很大程度减小存量分布式批量应用程序接入函数平台的改造难度,实现批量应用程序快速接入并运行于函数平台。
33.如图3所示为本技术另一实施例提供的一种分布式批量应用程序快速接入方法的
流程示意图,该方法包括如下步骤:
34.步骤s301:serverlessdbf管理模块获取应用程序的函数配置文件和分层参数文件。
35.步骤s302:serverlessdbf管理模块根据所述函数配置文件和所述分层参数文件向zookeeper注册函数信息,并调用函数计算平台接口创建函数。
36.步骤s303:批量控制器监听所述zookeeper注册函数信息,当符合批量作业运行预设条件后,所述批量控制器向所述zookeeper下发作业执行信息,并将批量数据库中的作业状态标记为已启动。
37.优选的,本步骤中批量作业运行预设条件可以包括:到达批量作业运行时间或达到批量作业运行数量标准。本步骤中的预设条件可以通过上述批量控制台141进行设置。
38.步骤s304:serverlessdbf管理模块监听所述zookeeper的作业执行信息,依据所述作业执行信息触发所述函数计算平台接口启动函数程序实例来执行作业。
39.步骤s305:serverlessdbf管理模块接收所述函数计算平台返回的作业执行完成信息,将所述作业执行完成信息写入所述zookeeper。
40.步骤s306:批量控制器监听到zookeeper中的作业执行完成信息后,将批量数据库中相应的作业状态标记为已完成。
41.步骤s307:serverlessdbf管理模块接收函数下线指令。
42.步骤s308:serverlessdbf管理模块根据所述函数下线指令在所述zookeeper中删除对应的函数注册信息,并调用所述函数计算平台接口删除对应的函数来完成函数下线。
43.由上述技术方案可知,本发明提供的分布式批量应用程序快速接入方法和装置,优化了现有dbf平台架构的设计,通过引入serverlessdbf管理模块,只需完成函数配置等少量非代码改造,不仅可以完成批量应用程序落地函数平台,更能很大程度减小存量分布式批量应用程序接入函数平台的改造难度,实现批量应用程序快速接入并运行于函数平台。
44.如图4所示为本技术实施例提供的一种分布式批量应用程序快速接入装置的结构示意图,该装置即为上述serverlessdbf管理模块,该装置包括:文件获取单元410、函数注册单元420、函数创建单元430、监听触发单元440和写入单元450,它们之间依次相连。其中:
45.文件获取单元410用于获取应用程序的函数配置文件和分层参数文件。
46.函数注册单元420用于根据所述函数配置文件和所述分层参数文件向zookeeper注册函数信息。
47.函数创建单元430用于调用函数计算平台接口创建函数。
48.监听触发单元440用于监听所述zookeeper的作业执行信息,依据所述作业执行信息触发所述函数计算平台接口启动函数程序实例来执行作业。
49.写入单元450用于接收所述函数计算平台返回的作业执行完成信息,将所述作业执行完成信息写入所述zookeeper。
50.优选的,本实施例中上述函数配置文件可以包括:应用名、作业分组编号、批次号、镜像号、超时时间、内存大小和函数描述中的一种或多种。
51.优选的,本实施例中上述分层参数文件包括:镜像运行所需的变量和所述变量对应的值。
52.优选的,本实施例中上述zookeeper的作业执行信息来自于批量控制器,该批量控制器监听所述zookeeper注册函数信息,当符合批量作业运行预设条件后,所述批量控制器向所述zookeeper下发作业执行信息,并将批量数据库中的作业状态标记为已启动。
53.优选的,本实施例中上述批量作业运行预设条件包括:到达批量作业运行时间或达到批量作业运行数量标准。
54.优选的,本实施例中批量控制器监听到所述作业执行完成信息后,将批量数据库中的作业状态标记为已完成。
55.优选的,如图5所示,本实施例的上述装置还包括一函数下线单元460,其用于接收函数下线指令,并根据所述函数下线指令在所述zookeeper中删除对应的函数注册信息,并调用所述函数计算平台接口删除对应的函数来完成函数下线。
56.上述各个单元的详细描述可以参见前述方法实施例中对应的描述,在此不再继续赘述。
57.由上述技术方案可知,本发明提供的分布式批量应用程序快速接入方法和装置,优化了现有dbf平台架构的设计,通过引入serverlessdbf管理模块,只需完成函数配置等少量非代码改造,不仅可以完成批量应用程序落地函数平台,更能很大程度减小存量分布式批量应用程序接入函数平台的改造难度,实现批量应用程序快速接入并运行于函数平台。
58.本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述方法。
59.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有执行上述方法的计算机程序。
60.如图6所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理器130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图6中所示的所有部件;此外,电子设备600还可以包括图6中没有示出的部件,可以参考现有技术。
61.如图6所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
62.其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
63.输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。
64.该存储器140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行
电子设备600的操作的流程。
65.存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
66.通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
67.基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
68.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
69.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
70.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
71.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
72.本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
技术特征:
1.一种分布式批量应用程序快速接入方法,其特征在于,所述方法包括:获取应用程序的函数配置文件和分层参数文件;根据所述函数配置文件和所述分层参数文件向zookeeper注册函数信息,并调用函数计算平台接口创建函数;监听所述zookeeper的作业执行信息,依据所述作业执行信息触发所述函数计算平台接口启动函数程序实例来执行作业;接收所述函数计算平台返回的作业执行完成信息,将所述作业执行完成信息写入所述zookeeper。2.如权利要求1所述的分布式批量应用程序快速接入方法,其特征在于,所述函数配置文件包括:应用名、作业分组编号、批次号、镜像号、超时时间、内存大小和函数描述中的一种或多种。3.如权利要求1所述的分布式批量应用程序快速接入方法,其特征在于,所述分层参数文件包括:镜像运行所需的变量和所述变量对应的值。4.如权利要求1所述的分布式批量应用程序快速接入方法,其特征在于,所述方法还包括:批量控制器监听所述zookeeper注册函数信息,当符合批量作业运行预设条件后,所述批量控制器向所述zookeeper下发作业执行信息,并将批量数据库中的作业状态标记为已启动。5.如权利要求4所述的分布式批量应用程序快速接入方法,其特征在于,所述批量作业运行预设条件包括:到达批量作业运行时间或达到批量作业运行数量标准。6.如权利要求4所述的分布式批量应用程序快速接入方法,其特征在于,所述方法还包括:所述批量控制器监听到所述作业执行完成信息后,将批量数据库中的作业状态标记为已完成。7.如权利要求6所述的分布式批量应用程序快速接入方法,其特征在于,所述方法还包括:接收函数下线指令;根据所述函数下线指令在所述zookeeper中删除对应的函数注册信息,并调用所述函数计算平台接口删除对应的函数来完成函数下线。8.一种分布式批量应用程序快速接入装置,其特征在于,所述装置包括:文件获取单元,用于获取应用程序的函数配置文件和分层参数文件;函数注册单元,用于根据所述函数配置文件和所述分层参数文件向zookeeper注册函数信息;函数创建单元,用于调用函数计算平台接口创建函数;监听触发单元,用于监听所述zookeeper的作业执行信息,依据所述作业执行信息触发所述函数计算平台接口启动函数程序实例来执行作业;写入单元,用于接收所述函数计算平台返回的作业执行完成信息,将所述作业执行完成信息写入所述zookeeper。9.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上
运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
技术总结
本发明提供了一种分布式批量应用程序快速接入方法和装置,涉及分布式架构技术领域,方法包括:获取应用程序的函数配置文件和分层参数文件;根据函数配置文件和分层参数文件向Zookeeper注册函数信息,并调用函数计算平台接口创建函数;监听Zookeeper的作业执行信息,依据作业执行信息触发函数计算平台接口启动函数程序实例来执行作业;接收函数计算平台返回的作业执行完成信息,将作业执行完成信息写入Zookeeper。本发明优化了现有DBF平台架构的设计,不仅可以完成批量应用程序落地函数平台,更能很大程度减小存量分布式批量应用程序接入函数平台的改造难度,实现批量应用程序快速接入并运行于函数平台。速接入并运行于函数平台。速接入并运行于函数平台。
技术研发人员:王豪赞 周文泽 吴冕冠 王磊
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.04.07
技术公布日:2023/8/21

版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/