工作流配置方法、装置、计算机设备和存储介质与流程

文档序号:22675940发布日期:2020-10-28 12:31阅读:129来源:国知局
工作流配置方法、装置、计算机设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种工作流配置方法、装置、计算机设备和存储介质。



背景技术:

随着计算机技术的发展,在线业务以方便快捷等优势逐渐发展起来,用于处理在线业务的业务逻辑的数据处理引擎也逐渐发展起来。目前,数据处理引擎的工作流配置,通常是研发人员根据业务逻辑编写定制化的程序来实现,在此过程中,可能需要研发人员与业务人员反复沟通业务逻辑,并不断的调整定制化的程序逻辑。由此,需要耗费大量的人力与时间,存在配置效率低的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高工作流的配置效率的工作流配置方法、装置、计算机设备和存储介质。

一种工作流配置方法,所述方法包括:

接收终端发送的配置数据包;所述配置数据包在检测到配置完成触发操作时,根据配置界面中当前展示的工作流数据生成;

根据所述配置数据包生成配置文件;所述配置文件包括每个组件对应的组件标识与组件参数,以及各组件之间的组件关系;

根据所述组件标识查询预配置的相应程序逻辑包;

将所述程序逻辑包按照相应组件参数进行实例化,得到相应实体节点;

按照所述组件关系通过分布式消息中间件将相应实体节点进行连接,得到所配置的工作流;

将所述工作流提交至分布式数据处理引擎,以通过所述分布式数据处理引擎运行所述工作流。

在其中一个实施例中,所述根据所述配置数据包生成配置文件,包括:

从所述配置数据包中提取每个组件对应的组件标识;

根据所述组件标识对应的组件参数模板从所述配置数据包提取组件参数;

从所述配置数据包中提取各组件之间的组件关系;

根据所述组件标识、所述组件参数与所述组件关系生成相应的配置文件。

在其中一个实施例中,所述将所述程序逻辑包按照相应组件参数进行实例化,得到相应实体节点,包括:

根据所述配置文件确定每个组件对应的初始实体节点数量;

将所述每个组件对应的程序逻辑包按照相应组件参数进行实例化,得到相应初始实体节点数量的实体节点。

在其中一个实施例中,所述按照所述组件关系通过分布式消息中间件将相应实体节点进行连接,得到所配置的工作流,包括:

根据所述配置文件中每个组件的组件参数,确定相应组件的输入接口与输出接口各自对应的分布式消息中间件;

将所述每个组件对应的实体节点,按照相应的组件关系与分布式消息中间件进行连接,得到所配置的工作流。

在其中一个实施例中,所述方法还包括:

接收所述终端发送的工作流调整请求;

根据所述工作流调整请求获取相应的配置数据包;

将所获取的配置数据包发送至所述终端;

根据所述终端针对所发送的配置数据包反馈的调整数据包,动态调整相应工作流。

在其中一个实施例中,所述分布式数据处理引擎运行所述工作流的步骤,包括:

所述分布式数据处理引擎在运行所述工作流的过程中,动态监控所述工作流中各个实体节点的当前负载;

当所述当前负载大于或等于预设负载阈值时,所述分布式数据处理引擎确定相应组件所对应的新增实体节点数量;

所述分布式数据处理引擎按照所述新增实体节点数量与相应的组件参数,对相应程序逻辑包进行实例化,得到新增实体节点。

在其中一个实施例中,所述分布式数据处理引擎运行所述工作流的步骤,还包括:

所述分布式数据处理引擎在运行所述工作流的过程中,动态监控所述工作流中各个实体节点的运行状态;

当监控到运行状态为运行故障的实体节点时,所述分布式数据处理引擎通过与所述运行故障的实体节点对应的组件所对应的、且运行状态为运行正常的实体节点,处理分配至所述运行故障的实体节点的业务请求。

一种工作流配置装置,所述装置包括:

接收模块,用于接收终端发送的配置数据包;所述配置数据包在检测到配置完成触发操作时,根据配置界面中当前展示的工作流数据生成;

生成模块,用于根据所述配置数据包生成配置文件;所述配置文件包括每个组件对应的组件标识与组件参数,以及各组件之间的组件关系;

查询模块,用于根据所述组件标识查询预配置的相应程序逻辑包;

实例化模块,用于将所述程序逻辑包按照相应组件参数进行实例化,得到相应实体节点;

配置模块,用于按照所述组件关系通过分布式消息中间件将相应实体节点进行连接,得到所配置的工作流;

提交模块,用于将所述工作流提交至分布式数据处理引擎,以通过所述分布式数据处理引擎运行所述工作流。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各个实施例中的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个实施例中的步骤。

上述工作流配置方法、装置、计算机设备和存储介质,通过终端进行工作流数据的可视化配置,通过该工作流数据能够快速配置得到工作流,由此,能够降低工作流的配置成本,提高配置效率。而在接收到终端根据可视化配置的工作流数据生成并发送的配置数据包后,根据该配置数据包生成配置文件,按照该配置文件中的组件标识与组件参数,根据各组件标识对应的逻辑程序包,确定组成工作流的实体节点,按照配置文件中的组件关系,通过分布式消息中间件将各实体节点进行连接,得到工作流,并通过分布式数据处理引擎运行该工作流,以实现大规模实时数据的及时处理。通过分布式消息中间件连接工作流中的相邻实体节点,且工作流通过分布式数据处理引擎来运行,当待处理的实时数据量剧增时,通过动态新增实体节点的方式即可及时响应数据量剧增的实时数据,而无需重新配置工作流,能够进一步降低工作流的配置成本,提高配置效率。

附图说明

图1为一个实施例中工作流配置方法的应用环境图;

图2为一个实施例中工作流配置方法的流程示意图;

图3为另一个实施例中工作流配置方法的流程示意图;

图4为一个实施例中工作流配置装置的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的工作流配置方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102在检测到配置完成触发操作时,根据配置界面中当前展示的工作流数据生成配置数据包,并将所生成的配置数据包发送至服务器104。服务器104根据所接收到的配置数据包生成包括每个组件对应的组件标识与组件参数,以及各组件之间的组件关系的配置文件,根据每个组件标识查询预配置的相应程序逻辑包,将所查询到的程序逻辑包按照相应的组件参数进行实例化,得到相应组件所对应的实体节点,按照配置文件中的组件关系,通过分布式消息中间件将相应实体节点进行连接,得到所配置的工作流,并将所配置的工作流提交至分布式数据处理引擎,以通过分布式数据处理引擎运行该工作流。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种工作流配置方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

步骤202,接收终端发送的配置数据包;配置数据包在检测到配置完成触发操作时,根据配置界面中当前展示的工作流数据生成。

其中,配置数据包是根据可视化配置的工作流数据生成的数据包。配置数据包具体可包括由工作流数据指定的每个组件对应的组件标识与组件参数,以及该各个组件之间的组件关系,还可包括每个组件对应的位置信息。工作流数据是在终端的配置界面进行工作流的可视化配置时动态配置的数据,具体可包括组成工作流的组件、每个组件的组件参数,以及该各个组件之间的组件关系,还可包括各组件的位置信息。

组件标识用于唯一标识组件。组件参数是指可动态变化、且在配置过程中由业务人员指定的参数,比如对于数学运算组件,组件参数包括参数组件运行的数据表、数据表中的字段与运算结果的赋值字段等。组件关系是指两个组件之间的依赖关系,比如一个组件的输入数据依赖于另一个组件的输出数据,还比如将一个组件的输出数据作为另一个组件的输入数据,由此,根据配置界面中可视化配置的工作流中各个组件的排序与连接关系,能够确定该各个组件之间的依赖关系,也即能够确定该各个组件之间的组件关系。组件的位置信息可以是指该组件在配置界面中的显示位置的信息。

配置完成触发操作是表征工作流数据配置完成的触发操作,用于指示终端根据配置界面中当前配置完成的工作流数据,生成并发送相应的配置数据包。配置完成触发操作具体可以是对预配置的配置完成触发控件的触发操作,也可以是其他触发操作,其他触发操作比如在配置界面的点击、滑动或长按等操作。

具体地,终端根据业务人员在配置界面的配置触发操作,在配置界面进行工作流数据的可视化配置,并动态检测业务人员的配置完成触发操作。当检测到配置完成触发操作时,终端根据配置界面当前展示的工作流数据生成相应的配置数据包,并将所生成的配置数据包发送至服务器。相应地,服务器接收终端生成并发送的配置数据包。

在一个实施例中,配置触发操作包括组件选取操作、组件删除操作、组件位置调整操作、组件参数编辑操作与组件关系建立操作等。组件选取操作比如从候选组件中选取组件,并拖拽至配置界面的相应位置进行显示。组件删除操作比如从配置界面中删除已选取的组件。组件位置调整操作比如通过托拉拽的方式调整组件在配置界面中的显示位置。组件参数编辑是指通过录入或选取等方式编辑组件参数。组件关系建立操作比如通过箭头线连接配置界面中已配置的组件,以建立组件之间的依赖关系。这样,业务人员在终端的配置界面通过托拉拽的形式动态调整组件,以实现工作流的可视化配置。

步骤204,根据配置数据包生成配置文件;配置文件包括每个组件对应的组件标识与组件参数,以及各组件之间的组件关系。

其中,配置文件是配置工作流的参考文件。配置文件包括由工作流数据指定的每个组件所对应的组件标识与组件参数,以及该各个组件之间的组件关系。

具体地,服务器解析所接收到的配置数据包,得到由相应工作流数据指定的每个组件所对应的组件标识与组件参数,以及各个组件之间的组件关系,并根据所得到的组件标识与相应组件参与,以及各个组件之间的组件关系,生成相应的配置文件。

在一个实施例中,服务器从配置数据包中提取每个组件对应的组件标识,根据所提取出的每个组件标识从配置数据包中提取相应的组件参数,根据各个组件标识从配置数据包中提取相应组件之间的组件关系,并根据所提取出的组件标识与相应的组件参数,以及组件关系得到相应配置文件。服务器具体可通过遍历配置数据包的方式,从配置数据包中提取每个组件对应的组件标识。

在一个实施例中,服务器根据所接收到的配置数据包生成预设格式的配置文件。服务器将配置数据包中的组件映射为配置文件中的描述实体,相应地,将组件标识映射为描述实体标识,将组件关系映射为实体关系,将组件参数映射为实体参数。预设格式比如xml(extensiblemarkuplanguage,可扩展标记语言)。预设格式的配置文件可理解为xml描述文件。

步骤206,根据组件标识查询预配置的相应程序逻辑包。

其中,程序逻辑包是包括组件的数据处理逻辑的程序包。程序逻辑包也即是指封装有能够实现组件的数据处理功能的程序或函数的程序包。程序逻辑包在实例化之后,能够用于实现组件的数据处理功能。每个组件能够用于实现单一的数据处理功能,该数据处理功能是业务处理中的通用功能或基础功能。由此,多个组件的特定组合能够用于实现相应的业务逻辑。实现单一数据处理功能的组件,比如数据类型转换组件、数学运算组件、数据聚合组件、数据拆分组件、数据合并组件、数据排序组件,以及实现类似通用功能的组件,在此不一一列举。

具体地,服务器针对每个组件在本地预存储有相应的程序逻辑包。服务器根据配置数据包生成配置文件后,根据该配置文件中的每个组件标识分别从本地查询针对该组件标识预配置的程序逻辑包。

在一个实施例中,服务器本地预配置有逻辑节点库,该逻辑节点库中预存储有针对每个组件标识预配置的程序逻辑包。服务器解析配置文件得到一个或多个组件标识,从预配置的逻辑节点库中查询每个组件标识对应的程序逻辑包。

在一个实施例中,每个组件对应的程序逻辑包是由开发人员预先配置并存储在服务器本地的,以便于服务器基于由终端生成并发送的配置数据包确定组成工作流的组件后,能够基于组件标识快速获取相应的程序逻辑包,进而基于该程序逻辑包进行工作流的配置。这样,业务人员通过终端进行工作流数据的可视化配置,也即通过终端能够实现工作流的可视化配置,而无需由研发人员编写定制化的程序来配置相应工作流,能够提高工作流的配置效率。

步骤208,将程序逻辑包按照相应组件参数进行实例化,得到相应实体节点。

其中,实体节点是对程序逻辑包进行实例化得到的、能够用于实现组件的数据处理功能的节点。

具体地,对于配置文件中的每个组件标识,服务器将组件标识对应的程序逻辑包,按照该组件标识对应的组件参数进行实例化,得到该组件标识对应的实体节点。由此,服务器对配置文件中各个组件标识对应的程序逻辑包分别进行实例化,得到该各个组件标识各自对应的实体节点。

在一个实施例中,服务器将每个组件标识对应的程序逻辑包实例化为相应工作节点下的实体节点。工作流由一个或多个工作节点组成,每个工作节点对应一个组件,每个工作节点下包括一个或多个实体节点,每个工作节点下的各个实体节点由相应组件所对应的程序逻辑包实例化得到,由此,每个工作节点下的各个实体节点用于实现相同的数据处理功能。不同工作节点下的实体节点通常用于实现不同的数据处理逻辑。可以理解,单个工作流中可包括对应同一个组件的多个工作节点,在基于该组件对应的程序逻辑包分别实例化得到该多个工作节点下的实体节点时,实例化所基于的组件参数的参数值可不同,也即该多个工作节点下的实体节点运行时所实现的数据处理逻辑类似,但是具体实现的数据处理功能不同。

在一个实施例中,服务器对每个组件标识对应的程序逻辑包进行实例化,得到每个组件标识对应的一个或多个实体节点。针对每个组件标识对应的程序逻辑包实例化得到的实体节点数量具体可由配置文件指定。

在一个实施例中,程序逻辑包可理解为包括组件的数据处理逻辑的程序包,将该程序逻辑包实例化得到相应实体节点后,通过运行该实体节点能够实现该组件的数据处理逻辑,从而完成该组件的数据处理功能。

在一个实施例中,服务器可在获取到配置文件中每个组件标识对应的程序逻辑包后,将所获取到的每个程序逻辑包分别按照相应的组件参数进行实例化,得到相应的实体节点。服务器也可在获取到单个组件标识对应的程序逻辑包后,将该当前获取到的程序逻辑包按照相应组件参数进行实例化,得到该组件标识对应的实体节点。可以理解,将配置文件中各组件标识对应的程序逻辑包实例化得到相应实体节点的步骤,可通过单个线程依次执行,也可通过多个线程并行的执行。

步骤210,按照组件关系通过分布式消息中间件将相应实体节点进行连接,得到所配置的工作流。

其中,分布式消息中间件是用于接收、保存与分发消息的中间件。分布式消息中间件包括但不限于是activemq(一种开放源代码的消息中间件)、rabbitmq(一种面向消息的中间件)与kafka(一种高吞吐量的分布式发布订阅消息系统/分布式消息队列)。

具体地,服务器根据配置文件确定各个组件之间的组件关系,以及各个组件对应的分布式消息中间件。服务器按照所确定的组件关系,通过对应确定的分布式消息中间件将相应组件所对应的实体节点进行连接,得到按照配置文件所配置等到的工作流。

在一个实施例中,配置文件指定了相邻两个组件之间的分布式消息中间件,相邻两个组件是指配置文件中存在组件关系的两个组件。服务器根据配置文件能够确定存在组件关系的两个组件之间的分布式消息中间件,并按照所确定的组件关系与相应分布式消息中间件,将相应两个组件各自对应的实体节点进行连接。

在一个实施例中,当组件对应的实体节点有多个时,需要按照该组件对应的组件关系,通过该组件对应的分布式消息中间件将该组件对应的多个实体节点分别与相应组件所对应的实体节点进行连接。这样,每个组件对应的多个实体节点均从相应分布式消息中间件中读取待处理的消息或数据,或者,将已处理得到的数据写入相应的分布式消息中间件,以便于后一个组件对应的各个实体节点从该分布式消息中间件中读取待自身处理的消息或数据。

在一个实施例中,一个完整的工作流对应一个完整的业务逻辑,通过运行该工作流能够实现相应的业务逻辑。

步骤212,将工作流提交至分布式数据处理引擎,以通过分布式数据处理引擎运行工作流。

具体地,服务器根据配置文件配置得到相应的工作流后,将该工作流提交至分布式数据处理引擎。该分布式数据处理引擎通过运行该工作流实现相应的业务逻辑。

在一个实施例中,服务器在配置得到工作流后,在本地动态编译该配置完成的工作流。当工作流编译成功时,服务器将该编译成功的工作流提交至分布式数据处理引擎。这样,能够避免将可能会编译失败的工作流提交至分布式数据处理引擎,从而能够提交工作流的配置效率。

在一个实施例中,已配置完成的工作流包括一个或多个工作节点,每个工作节点对应一个组件,每个工作节点下包括由相应组件所对应的程序逻辑包实例化得到的一个或多个实体节点。分布式数据处理引擎具体可以是分布式计算集群,该工作流中的每个工作节点可以是该分布式计算集群中的一个容器,容器的输入与输出通过分布式消息中间件进行连接。

在一个实施例中,分布式数据处理引擎比如apacheflink。

上述工作流配置方法,通过终端进行工作流数据的可视化配置,通过该工作流数据能够快速配置得到工作流,由此,能够降低工作流的配置成本,提高配置效率。而在接收到终端根据可视化配置的工作流数据生成并发送的配置数据包后,根据该配置数据包生成配置文件,按照该配置文件中的组件标识与组件参数,根据各组件标识对应的逻辑程序包,确定组成工作流的实体节点,按照配置文件中的组件关系,通过分布式消息中间件将各实体节点进行连接,得到工作流,并通过分布式数据处理引擎运行该工作流,以实现大规模实时数据的及时处理。通过分布式消息中间件连接工作流中的相邻实体节点,且工作流通过分布式数据处理引擎来运行,当待处理的实时数据量剧增时,通过动态新增实体节点的方式即可及时响应数据量剧增的实时数据,而无需重新配置工作流,能够进一步降低工作流的配置成本,提高配置效率。

在一个实施例中,步骤204,包括:从配置数据包中提取每个组件对应的组件标识;根据组件标识对应的组件参数模板从配置数据包提取组件参数;从配置数据包中提取各组件之间的组件关系;根据组件标识、组件参数与组件关系生成相应的配置文件。

其中,组件参数模板是用于指定组件所对应的组件参数的模板,具体可包括组件对应的每个组件参数所对应组件参数标识。组件参数模板还可包括各个组件参数之间的参数关系。

具体地,服务器从配置数据包中提取每个组件对应的组件标识,根据每个组件标识获取相应的组件参数模板,并根据组件参数模板与相应组件标识从配置数据包中提取相应的组件参数,得到每个组件标识对应的组件参数。服务器从配置数据包中提取各个组件之间的组件关系,并根据每个组件对应的组件标识与组件参数,以及各个组件之间的组件关系生成相应的配置文件。

在一个实施例中,服务器针对每个组件预配置有相应的组件参数模板,并将组件参数模板与相应组件标识对应存储在本地。服务器根据从配置数据包中提取出的组件标识,能够从本地查询到相应的组件参数模板。服务器根据组件参数模板能够确定相应组件所对应的组件参数标识,根据组件参数标识能够从配置数据包中提取相应的组件参数,从而得到每个组件标识对应的一个或多个组件参数。可以理解,若不同组件对应的组件参数模板中可包括相同的组件参数标识,服务器则可根据组件参数标识与相应组件标识从配置数据包中提取相应的组件参数。

在一个实施例中,服务器从配置数据包中提取出组件标识后,将所提取出的每个组件标识与预配置的组件标识集合进行匹配,以验证组件标识的正确性。当判定所提取出的组件标识中存在与组件标识集合匹配失败的组件标识时,服务器将该匹配失败的组件标识发送至终端,以指示终端对该组件标识进行进一步审核,并反馈相应的审核结果。审核结果中可包括用于替换该匹配失败的组件表示的组件标识。这样,能够保证组件标识的准确性,从而基于准确性较高的组件标识进行后续的工作流配置操作,能够提高工作流的配置准确性。

上述实施例中,基于每个组件标识对应的组件参数模板,分别从配置数据包中提取相应组件标识所对应的组件参数,能够剔除配置数据包中的无关数据,而仅提取配置工作流所需的相关数据,从而能够提高配置文件的准确性。可以理解,配置数据包是终端根据配置界面的工作流数据生成的前端数据,通常可能包括服务器配置工作流时所不涉及的无关数据,比如各个组件在配置界面的位置信息,由此,服务器根据配置数据包生成配置文件的过程,即是根据前端数据生成配置工作流所依据的后端数据,且该后端数据中已剔除了配置工作流的无关数据,而包括配置工作流所需的相关数据,比如组件之间的组件关系,这样,基于配置数据包生成配置文件的过程即是剔除无关数据的过程。

在一个实施例中,步骤208,包括:根据配置文件确定每个组件对应的初始实体节点数量;将每个组件对应的程序逻辑包按照相应组件参数进行实例化,得到相应初始实体节点数量的实体节点。

其中,组件对应的初始实体节点数量是指在工作流的配置过程中,针对该组件对应的程序逻辑包实例化得到的实体节点的数量。

具体地,配置文件中还包括每个组件对应的初始实体节点数量。服务器从配置文件中提取每个组件对应的初始实体节点数量。对于配置文件中的每个组件,服务器将该组件对应的程序逻辑包,按照该组件对应的组件参数与初始实体节点数量进行实例化,得到该组件对应的初始实体节点数量的实体节点。

在一个实施例中,服务器将每个组件对应的程序逻辑包,按照该组件对应的组件参数进行实例化,以赋予该程序逻辑包中各个组件参数的物理含义,得到相应的实体节点。这样,运行实体节点的过程即是调用已赋予组件参数相应物理含义的程序逻辑包的过程,这样,通过运行实体节点能够实现相应的数据处理功能。

上述实施例中,根据配置文件确定每个组件在初始配置的工作流中所对应的初始实体节点数量,这样,针对每个组件在工作流中配置相应初始实体节点数量的实体节点,来实现该组件相应的数据处理功能,以便于该初始配置的工作流能够适用于处理数据量较大的实时数据,以避免在实时数据量较大时,因工作流的数据处理压力过大而需要重新配置工作流,从而能够提高工作流的配置效率,降低配置成本。

在一个实施例中,步骤210,包括:根据配置文件中每个组件的组件参数,确定相应组件的输入接口与输出接口各自对应的分布式消息中间件;将每个组件对应的实体节点,按照相应的组件关系与分布式消息中间件进行连接,得到所配置的工作流。

具体地,服务器从配置文件中提取出组件对应的组件参数后,从该组件参数中提取该组件的输入接口与输出接口各自对应的分布式消息中间件。服务器按照配置文件中各组件之间的组件关系,将每个组件对应的实体节点的输入接口与输出接口,分别与相应确定的分布式消息中间件进行连接,以通过分布式消息中间件实现相邻组件各自对应的实体节点的连接,得到配置完成的工作流。可以理解,存在组件关系的相邻两个组件,前一个组件的输出接口对应的分布式消息中间件,与后一个组件的输入接口对应的分布式消息中间件一致。

举例说明,假设配置文件中包括组件1、组件2与组件3共3个组件,组件1与2之间的组件关系为组件1为组件2的前相邻组件,组件2与组件3之间的组件关系为组件2为组件3的前相邻组件,组件1的输出接口对应的分布式消息中间件为x1,组件2的输入接口与输出接口各自对应的分布式消息中间件,分别为x1与x2,组件3的输入接口对应的分布式消息中间件为x2。由此可知,按照各个组件之间的组件关系与相应的分布式消息中间件,将组件1对应的实体节点通过分布式消息中间件x1与组件2对应的各个实体节点进行连接,将组件2对应的各个实体节点通过分布式消息中间件x2与组件3对应的各个实体节点进行连接,得到由组件1-3各自对应的实体节点组成的工作流。

在一个实施例中,通过分布式消息中间件将相邻组件各自对应的实体节点进行连接,这样,前一个组件对应的实体节点将输出的数据存入分布式消息中间件进行缓存,以供后一个组件对应的实体节点从该分布式消息中间件中读取所缓存的数据并进行处理,由此,能够实现实体节点间的业务解耦,从而能够在降低工作流配置效率的情况下,提高工作流的适用性。

上述实施例中,相邻两个组件各自对应的实体节点通过分布式消息中间件进行串联,以便于能够根据待处理的实时数据量动态扩展实体节点,提高了实现工作流的可扩展性,能够避免在实时数据量剧增时,需要重新配置工作流,从而提高了工作流的配置效率,降低了配置成本。

在一个实施例中,上述工作流配置方法还包括:接收终端发送的工作流调整请求;根据工作流调整请求获取相应的配置数据包;将所获取的配置数据包发送至终端;根据终端针对所发送的配置数据包反馈的调整数据包,动态调整相应工作流。

其中,工作流调整请求是用于触发工作流调整操作的请求,具体可包括待调整工作流的工作流标识。

具体地,服务器接收终端发送的工作流调整请求,根据所接收到的工作流调整请求确定相应的工作流标识,根据所确定的工作流标识获取相应的配置数据包,并将所获取到的配置数据包发送至终端。终端根据所接收到的配置数据包,在配置界面可视化展示相应的工作流数据,以便于业务人员通过配置界面可视化调整该工作流数据。终端在检测到业务人员触发的调整完成触发操作时,触发生成并发送相应的调整数据包。服务器在接收到终端发送的调整数据包后,根据该调整数据包动态更新相应的配置文件,根据更新后的配置文件动态调整相应的工作流,并将动态调整后的工作流重新提交至分布式数据处理引擎,以实现工作流的可视化动态调整。

在一个实施例中,服务器根据所确定的工作流标识在本地查询相应的配置文件,将所查询到的配置文件转换为配置数据包。服务器也可针对已配置完成的工作流在本地存储相应的配置数据包,这样,服务器根据所接收到的工作流调整请求中的工作流标识,直接从本地查询相应存储的配置数据包。

在一个实施例中,服务器在检测到调整完成触发操作时,可根据配置界面中当次调整的工作流数据生成相应的调整数据包,也可根据配置界面中当前展示的工作流数据生成相应的调整数据包,并将所生成的调整数据包发送至服务器。可以理解,当次调整的工作流数据包括当次调整的组件、组件参数与组件关系等中的一种或多种。

在一个实施例中,服务器可基于动态更新后的配置文件动态调整已配置完成的工作流,也可根据动态更新后的配置文件,按照上述工作流配置流程重新配置工作流,并将重新配置得到的工作流提交至分布式数据处理引擎。

上述实施例中,通过终端对已配置完成的工作流进行可视化修改,能够提高工作流的修改效率,而根据调整数据包动态调整该已配置完成的工作流,能够进一步完成工作流的修改效率,降低修改操作复杂度。

在一个实施例中,分布式数据处理引擎运行工作流的步骤,包括:分布式数据处理引擎在运行工作流的过程中,动态监控工作流中各个实体节点的当前负载;当当前负载大于或等于预设负载阈值时,分布式数据处理引擎确定相应组件所对应的新增实体节点数量;分布式数据处理引擎按照新增实体节点数量与相应的组件参数,对相应程序逻辑包进行实例化,得到新增实体节点。

其中,预设负载阈值是预先设定的用于与实体节点的当前负载进行比较,以判断是否需要动态新增相应实体节点的阈值,具体可以是负载量,也可以是负载占比。新增实体节点数量是指需要动态新增的实体节点数量。

具体地,分布式数据处理引擎在已配置完成的工作流的运行过程中,动态监控该工作流中各个实体节点的当前负载,将动态监听的当前负载与相应的预设负载阈值进行比较。当判定实体节点的当前负载大于或等于相应预设负载阈值时,分布式数据处理引擎动态确定该实体节点对应的组件所对应的新增实体节点数量,将该组件对应的程序逻辑包,按照该组件对应的组件数据与新增实体节点数量进行实例化,得到该组件对应的新增实体节点数量的新增实体节点。

在一个实施例中,当判定实体节点的当前负载大于或等于预设负载阈值时,分布式数据处理引擎根据该当前负载与预设负载阈值,动态确定相应的新增实体节点数量。比如,当实体节点当前所占用的cpu资源大于或等于分配给该实体节点的资源额度的90%时,则将该实体节点对应的组件所对应的实体节点数量扩展一倍。

在一个实施例中,针对动态新增的新增实体节点,分布式数据处理引擎按照该新增实体节点对应的组件所对应的已有实体节点与分布式消息中间件的连接关系,将该新增实体节点与相应分布式消息中间件进行连接,以实现新增节点与其他组件对应的实体节点的连接。

在一个实施例中,分布式数据处理引擎动态监控工作流中每个工作节点的当前负载,在工作节点的当前负载大于或等于相应指定负载阈值时,将该工作节点对应的组件所对应的程序逻辑包进行实例化,以动态新增该工作节点下的实体节点数量。

上述实施例中,由于工作流中相邻组件对应的实体节点通过分布式消息中间件进行连接,当监控到实体节点的当前负载大于或等于预设负载阈值时,可动态新增相应的实体节点,且动态新增的实体节点仍然通过相应的分布式消息中间件进行连接,以便于通过新增的实体节点与已有的实体节点共同处理相应组件的数据处理逻辑,能够降低每个实体节点的数据处理压力,从而能够提高数据处理效率。

在一个实施例中,分布式数据处理引擎运行工作流的步骤,还包括:分布式数据处理引擎在运行工作流的过程中,动态监控工作流中各个实体节点的运行状态;当监控到运行状态为运行故障的实体节点时,分布式数据处理引擎通过与运行故障的实体节点对应的组件所对应的、且运行状态为运行正常的实体节点,处理分配至运行故障的实体节点的业务请求。

其中,运行状态可以是指实体节点运行的状态,还可以是指运行有该实体节点的主机运行的状态。运行状态包括运行正常与运行故障。

具体地,分布式数据处理引擎在工作流的运行过程中,动态监控该工作流中各个实体节点的运行状态。当监控到运行状态为运行故障的实体节点时,分布式数据处理引擎从该工作流中确定该运行故障的实体节点对应的组件所对应的其他实体节点,从该其他实体节点中选取当前的运行状态为运行正常的实体节点,并将分配至该运行故障的实体节点的业务请求重新分配至所筛选出的实体节点,以通过所筛选出的实体节点继续处理该重新分配的业务请求。可以理解,分布式数据处理引擎可按照上述方式,从工作流中筛选一个或多个运行正常的实体节点。

在一个实施例中,分布式数据处理引擎动态监控工作流中各个实体节点的运行状态,当监控到实体节点运行故障时,将分配至该运行故障的实体节点的业务请求,重新分配至该实体节点所处的工作节点下当前运行状态为运行正常的其他实体节点。可以理解,由于每个工作节点下的各个实体节点是分布式部署的,当一个实体节点运行故障时,可通过相应工作节点下的其他实体节点继续处理业务请求,以保证工作流的可靠性。

在一个实施例中,由于每个组件对应的多个实体节点是分布式部署的,当运行某个实体节点的主机运行故障时,分布式数据处理引擎可通过运行于其他主机的、且对应相同组件的其他实体节点来继续处理业务请求,也可在尚未运行有该实体节点对应的组件所对应的任一实体节点的主机上,重新实例化得到用于响应相应业务请求的实体节点。

上述实施例中,动态监控工作流中实体节点的运行状态,并将运行故障的实体节点所分配的业务请求及时重新分配至其他运行正常的实体节点,以保证业务请求的响应及时性,以及工作流的可靠性。

如图3所示,在一个实施例中,提供了一种工作流配置方法,该方法具体包括以下步骤:

步骤302,接收终端发送的配置数据包;配置数据包在检测到配置完成触发操作时,根据配置界面中当前展示的工作流数据生成。

步骤304,从配置数据包中提取每个组件对应的组件标识。

步骤306,根据组件标识对应的组件参数模板从配置数据包提取组件参数。

步骤308,从配置数据包中提取各组件之间的组件关系。

步骤310,根据组件标识、组件参数与组件关系生成相应的配置文件。

步骤312,根据组件标识查询预配置的相应程序逻辑包;

步骤314,根据配置文件确定每个组件对应的初始实体节点数量;

步骤316,将每个组件对应的程序逻辑包按照相应组件参数进行实例化,得到相应初始实体节点数量的实体节点。

步骤318,根据配置文件中每个组件的组件参数,确定相应组件的输入接口与输出接口各自对应的分布式消息中间件。

步骤320,将每个组件对应的实体节点,按照相应的组件关系与分布式消息中间件进行连接,得到所配置的工作流。

步骤322,将工作流提交至分布式数据处理引擎,以通过分布式数据处理引擎运行工作流。

应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种工作流配置装置400,包括:接收模块401、生成模块402、查询模块403、实例化模块404、配置模块405和提交模块406,其中:

接收模块401,用于接收终端发送的配置数据包;配置数据包在检测到配置完成触发操作时,根据配置界面中当前展示的工作流数据生成;

生成模块402,用于根据配置数据包生成配置文件;配置文件包括每个组件对应的组件标识与组件参数,以及各组件之间的组件关系;

查询模块403,用于根据组件标识查询预配置的相应程序逻辑包;

实例化模块404,用于将程序逻辑包按照相应组件参数进行实例化,得到相应实体节点;

配置模块405,用于按照组件关系通过分布式消息中间件将相应实体节点进行连接,得到所配置的工作流;

提交模块406,用于将工作流提交至分布式数据处理引擎,以通过分布式数据处理引擎运行工作流。

在一个实施例中,生成模块402,还用于从配置数据包中提取每个组件对应的组件标识;根据组件标识对应的组件参数模板从配置数据包提取组件参数;从配置数据包中提取各组件之间的组件关系;根据组件标识、组件参数与组件关系生成相应的配置文件。

在一个实施例中,实例化模块404,还用于根据配置文件确定每个组件对应的初始实体节点数量;将每个组件对应的程序逻辑包按照相应组件参数进行实例化,得到相应初始实体节点数量的实体节点。

在一个实施例中,配置模块405,还用于根据配置文件中每个组件的组件参数,确定相应组件的输入接口与输出接口各自对应的分布式消息中间件;将每个组件对应的实体节点,按照相应的组件关系与分布式消息中间件进行连接,得到所配置的工作流。

在一个实施例中,上述工作流配置装置400,还包括:调整模块;

调整模块,用于接收终端发送的工作流调整请求;根据工作流调整请求获取相应的配置数据包;将所获取的配置数据包发送至终端;根据终端针对所发送的配置数据包反馈的调整数据包,动态调整相应工作流。

在一个实施例中,分布式数据处理引擎,用于在运行工作流的过程中,动态监控工作流中各个实体节点的当前负载;当当前负载大于或等于预设负载阈值时,确定相应组件所对应的新增实体节点数量;按照新增实体节点数量与相应的组件参数,对相应程序逻辑包进行实例化,得到新增实体节点。

在一个实施例中,分布式数据处理引擎,还用于在运行工作流的过程中,动态监控工作流中各个实体节点的运行状态;当监控到运行状态为运行故障的实体节点时,通过与运行故障的实体节点对应的组件所对应的、且运行状态为运行正常的实体节点,处理分配至运行故障的实体节点的业务请求。

关于工作流配置装置的具体限定可以参见上文中对于工作流配置方法的限定,在此不再赘述。上述工作流配置装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储针对每个组件预配置的程序逻辑包。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种工作流配置方法。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各个方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1