一种并行流式计算方法、电子设备、存储介质及系统与流程

文档序号:16207136发布日期:2018-12-08 07:15阅读:143来源:国知局
一种并行流式计算方法、电子设备、存储介质及系统与流程

本发明涉及计算机技术领域,尤其涉及一种并行流式计算方法、电子设备、存储介质及系统。

背景技术

随着互联网的飞速发展,大数据时代已经到来,数据的应用在人们的生活中无处不在,开发出越来越多的系统来满足大数据实时处理的需求。复杂系统之间的交互通常是通过固化的硬代码编写实现,开发效率低,程序维护量大,而且代码重用率低,重复的程序开发造成资源的浪费。现有技术中,业务代码一般采用顺序执行的方式,效率低,系统间的耦合度高。业务代码的流程需要配置,因此需要非常熟悉业务的人员进行流程配置操作,配置项较多造成使用操作不方便,无法进行灵活配置和扩展,无法满足快速计算的需求。



技术实现要素:

本发明正是基于上述技术问题至少之一,提出了一种并行流式计算方法、电子设备、存储介质及系统,解决了当前系统之间的交互程序开发效率低,程序维护量大,重用率低,无法灵活配置和扩展,无法满足快速计算需求的问题。

为达到上述目的,本发明提供一种并行流式计算方法,包括以下步骤:

数据接收,通过并行流式计算系统的流程接口接收原始数据;

流程配置,将所述原始数据的数据标识号插入存储系统列表,根据配置的流程图启动第一节点,当执行完后续生成的异步线程时,执行流程的主线程,删除所述存储系统列表中的所述数据标识号,生成配置流程;

流程调度,当所述原始数据进入调度服务时,根据所述配置流程启动所述第一节点,将输入的参数和所述参数对应的值组装生成参数值,将所述参数值发送至所述第一节点对应的配置服务,将返回的数据写入数据库;

并行流式计算,查找所述第一节点的所有后置节点,将所述后置节点生成新线程,循环执行所述步骤流程调度,根据所有返回的数据进行并行计算,对计算结果进行持久化。

进一步地,在所述步骤流程配置和所述步骤流程调度之间还包括步骤流程并发量控制,当所述存储系统列表的长度达到限流阀值时,停止调用所述流程接口。

进一步地,所述流程接口具体为kafka消息队列,所述存储系统具体为redis,所述步骤流程并发量控制具体为当所述redis列表的长度达到限流阀值时,停止调用所述kafka消息队列。

进一步地,所述步骤并行流式计算还包括根据线程条件选择所述后置节点,获得选择节点,根据所述配置流程启动所述选择节点,将输入的参数和所述参数对应的值组装生成参数值,将所述参数值发送至所述选择节点对应的配置服务,将返回的数据写入数据库。

进一步地,所述步骤并行流式计算还包括采用haproxy进行负载均衡,将所述计算结果持久化至mysql。

一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述一种并行流式计算方法。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种并行流式计算方法。

一种并行流式计算系统,包括:

数据接收模块:用于通过并行流式计算系统的流程接口接收原始数据;

流程配置模块:用于将所述原始数据的数据标识号插入存储系统列表,根据配置的流程图启动第一节点,当执行完后续生成的异步线程时,执行流程的主线程,删除所述存储系统列表中的所述数据标识号,生成配置流程;

流程调度模块:用于当所述原始数据进入调度服务时,根据所述配置流程启动所述第一节点,将输入的参数和所述参数对应的值组装生成参数值,将所述参数值发送至所述第一节点对应的配置服务,将返回的数据写入数据库;

并行流式计算模块:并行流式计算模块:用于查找所述第一节点的所有后置节点,将所述后置节点生成新线程,调用所述流程调度模块根据所述配置流程启动所述后置节点,将输入的参数和所述参数对应的值组装生成参数值,将所述参数值发送至所述后置节点对应的配置服务,将返回的数据写入数据库,根据所有返回的数据进行并行计算;

数据持久化模块:用于对计算结果进行持久化。

进一步地,还包括流程并发量控制模块:用于当所述存储系统列表的长度达到限流阀值时,停止调用所述流程接口;所述流程接口具体为kafka消息队列,所述存储系统具体为redis。

进一步地,所述并行流式计算模块还包括根据线程条件选择所述后置节点,获得选择节点,根据所述配置流程启动所述选择节点,将输入的参数和所述参数对应的值组装生成参数值,将所述参数值发送至所述选择节点对应的配置服务,将返回的数据写入数据库;所述并行流式计算模块还包括采用haproxy进行负载均衡:所述数据持久化模块具体为将所述计算结果持久化至mysql。

与现有技术相比,本发明的优势在于:本发明提供一种并行流式计算方法,包括步骤:数据接收,流程配置,流程调度,并行流式计算,通过并行流式计算系统的流程接口接收原始数据;将原始数据的数据标识号插入存储系统列表,根据配置的流程图启动第一节点,当执行完后续生成的异步线程时,执行流程的主线程,删除存储系统列表中的数据标识号,生成配置流程;当原始数据进入调度服务时,根据配置流程启动第一节点,将输入的参数和参数对应的值组装生成参数值,将参数值发送至第一节点对应的配置服务,将返回的数据写入数据库;查找第一节点的所有后置节点,将后置节点生成新线程,循环调用步骤流程调度,根据所有返回的数据进行并行计算,对计算结果进行持久化。本发明还涉及一种电子设备、计算机可读存储介质、并行流式计算系统。本发明通过采用kafka消息队列,实现统一数据来源,控制流程并发量,解决了对外接口不统一问题;通过页面拖拽节点配置流程,实现节点重复使用,运营后期变更流程不需要再进行程序开发,解决了流程不可配置化问题;通过并发开启多线程运行,实现减少流程的执行时间,并可控制并发数,解决了流程节点并行化问题;本发明通过系统流程定义,实现不同业务系统之间的数据访问,减少了重复的程序开发,节省资源,提高了开发效率,通过并行节点的定义提高了系统运行效率高,运算速度快、结构稳定可靠、扩展性强,配置灵活。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。

附图说明

下面结合附图和本发明的实施方式作进一步详细说明。

图1为本发明的一种并行流式计算方法流程图;

图2为本发明的一种并行流式计算系统结构示意图;

图3为本发明实施例的并行流式计算系统结构示意图。

具体实施方式

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

一种并行流式计算方法,如图1所示,包括以下步骤:

数据接收,通过并行流式计算系统的流程接口接收原始数据;本实施例中,流程接口具体为kafka消息队列,通过并行流式计算系统的kafka消息队列接收原始数据。通过采用kafka消息队列,实现统一数据来源,控制流程并发量,解决了对外接口不统一问题。

在一实施例中,在流程配置之前包括节点服务注册和节点输入源定义。流程配置,将原始数据的数据标识号插入存储系统列表,根据配置的流程图启动第一节点,当执行完后续生成的异步线程时,执行流程的主线程,删除存储系统列表中的数据标识号,生成配置流程,至此标识一个流程完成;本实施例中,存储系统具体为redis,将原始数据的数据标识号插入redis列表。流程可配置化

在一实施例中,调用流程接口的服务根据存储系统列表的长度来判断是否达到限流阀值,优选的,在步骤流程配置和步骤流程调度之间还包括步骤流程并发量控制,当存储系统列表的长度达到限流阀值时,停止调用流程接口,当存储系统列表小于限流阀值时,再调用流程接口,本实施例中,流程接口具体为kafka消息队列,存储系统具体为redis,步骤流程并发量控制具体为当redis列表的长度达到限流阀值时,停止调用kafka消息队列。通过高峰期限流保证服务的高可用性,实现流程并发量控制。

流程调度,当原始数据进入调度服务时,根据配置流程启动第一节点,将输入的参数和参数对应的值组装生成参数值,将参数值发送至第一节点对应的配置服务,正确响应并返回数据后查找其后续的所有节点,将返回的数据写入数据库供查询。

并行流式计算,查找第一节点的所有后置节点,将后置节点生成新线程,循环调用步骤流程调度,所有的子节点在接收到原始数据后进行与第一节点相同的调用流程,直到最后一个节点完成调用时线程结束,至此整个流程结束,根据所有返回的数据进行并行计算,对计算结果进行持久化。通过并发开启多线程运行,实现减少流程的执行时间,并可控制并发数,解决了流程节点并行化问题。

在一实施例中,优选的,步骤并行流式计算还包括根据线程条件选择后置节点,获得选择节点,根据配置流程启动选择节点,将输入的参数和参数对应的值组装生成参数值,将参数值发送至选择节点对应的配置服务,将返回的数据写入数据库。

在一实施例中,优选的,步骤并行流式计算还包括采用haproxy进行负载均衡,将计算结果持久化至mysql。通过采用haproxy进行负载均衡,减小计算引擎的压力和流量。

一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述一种并行流式计算方法。

一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述一种并行流式计算方法。

一种并行流式计算系统,如图2-图3所示,包括:

数据接收模块通过并行流式计算系统的流程接口接收原始数据;本实施例中,流程接口具体为kafka消息队列,数据接收模块通过并行流式计算系统的kafka消息队列接收原始数据。本发明通过采用kafka消息队列,实现统一数据来源,控制流程并发量,解决了对外接口不统一问题。

在一实施例中,流程配置模块还包括节点服务注册和节点输入源定义。流程配置模块将原始数据的数据标识号插入存储系统列表,根据配置的流程图启动第一节点,当执行完后续生成的异步线程时,执行流程的主线程,删除存储系统列表中的数据标识号,生成配置流程;,至此标识一个流程完成;本实施例中,存储系统具体为redis,流程配置模块将原始数据的数据标识号插入redis列表。

在一实施例中,调用流程接口的服务根据存储系统列表的长度来判断是否达到限流阀值,优选的,还包括流程并发量控制模块当存储系统列表的长度达到限流阀值时,停止调用流程接口,当存储系统列表小于限流阀值时,再调用流程接口。本实施例中,流程接口具体为kafka消息队列,存储系统具体为redis,流程并发量控制模块具体为当redis列表的长度达到限流阀值时,停止调用kafka消息队列。通过高峰期限流保证服务的高可用性,实现流程并发量控制。

流程调度模块根据配置的调度策略进行流程数据调度,当原始数据进入调度服务时,根据配置流程启动第一节点,将输入的参数和参数对应的值组装生成参数值,将参数值发送至第一节点对应的配置服务,正确响应并返回数据后查找其后续的所有节点,将返回的数据写入数据库。

并行流式计算模块查找第一节点的所有后置节点,将后置节点生成新线程,调用流程调度模块根据配置流程启动后置节点,将输入的参数和参数对应的值组装生成参数值,将参数值发送至后置节点对应的配置服务,将返回的数据写入数据库,并行流式计算模块根据所有返回的数据进行并行计算。通过并发开启多线程运行,实现减少流程的执行时间,并可控制并发数,解决了流程节点并行化问题。数据持久化模块对计算结果进行持久化。本实施例中,计算引擎根据已调度的数据进行并行计算,得到的结果保存至redis,通过kafka消息队列持久化至mysql。

在一实施例中,优选的,并行流式计算模块还包括根据线程条件选择后置节点,获得选择节点,根据配置流程启动选择节点,将输入的参数和参数对应的值组装生成参数值,将参数值发送至选择节点对应的配置服务,将返回的数据写入数据库;并行流式计算模块还包括采用haproxy进行负载均衡:数据持久化模块具体为将计算结果持久化至mysql。通过采用haproxy进行负载均衡,减小计算引擎的压力和流量。

本发明提供一种并行流式计算方法,包括步骤:数据接收,流程配置,流程调度,并行流式计算,通过并行流式计算系统的流程接口接收原始数据;将原始数据的数据标识号插入存储系统列表,根据配置的流程图启动第一节点,当执行完后续生成的异步线程时,执行流程的主线程,删除存储系统列表中的数据标识号,生成配置流程;当原始数据进入调度服务时,根据配置流程启动第一节点,将输入的参数和参数对应的值组装生成参数值,将参数值发送至第一节点对应的配置服务,将返回的数据写入数据库;查找第一节点的所有后置节点,将后置节点生成新线程,循环调用步骤流程调度,根据所有返回的数据进行并行计算,对计算结果进行持久化。本发明还涉及一种电子设备、计算机可读存储介质、并行流式计算系统。本发明通过采用kafka消息队列,实现统一数据来源,控制流程并发量,解决了对外接口不统一问题;通过页面拖拽节点配置流程,实现节点重复使用,运营后期变更流程不需要再进行程序开发,解决了流程不可配置化问题;通过并发开启多线程运行,实现减少流程的执行时间,并可控制并发数,解决了流程节点并行化问题;本发明通过系统流程定义,实现不同业务系统之间的数据访问,减少了重复的程序开发,节省资源,提高了开发效率,通过并行节点的定义提高了系统运行效率高,运算速度快、结构稳定可靠、扩展性强,配置灵活。

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

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

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