一种基于云平台的分布式流程处理解决方法及系统与流程

文档序号:26139703发布日期:2021-08-03 14:23阅读:156来源:国知局
一种基于云平台的分布式流程处理解决方法及系统与流程

本发明涉及分布式领域以及java应用领域,特别涉及一种基于云平台的分布式流程处理解决方法及系统。



背景技术:

在现今的java企业级应用环境,越来越多的需求以及越来越复杂功能场景逐渐增多并且还伴随着高并发,低延迟的强业务需求,目前的行业没有太多的场景框架,更多的倾向于服务间的负载方案,现有springbatch等批处理框架是单节点多线程处理方式,定时任务处理只能单节点,无法利用微服务集群的优势,发挥服务器性能。本发明保留服务负载均衡,继续对业务流程进行拆分,进一步提高服务容错以及提高响应速度。



技术实现要素:

发明目的:本发明的目的是提供一种基于云平台的分布式流程处理解决方法及系统,解决复杂业务功能场景下分任务模式以及多节点共同执行的问题,创造一个分布式流程任务管理平台。

技术方案:本发明所述的一种基于云平台的分布式流程处理解决方法,包括以下步骤:

s1:程序启动时启动主流程入口,具体包括以下步骤:

s1.1:程序从数据库中查询数据,查询条件为业务条件;

s1.2:数据查询完毕后,开始组装step需要的数据格式;

s1.3:数据组装完毕后,发送至mq;

s2:将java的业务功能分为step1、step2、...、stepn,其中n为大于1的正整数,多个step监听同一个mq;

s3:在需要处理的业务数据来临时,多个step同时监听到该条数据,但该条数据仅会被全局中的一个step所处理;

s4:step处理业务数据,具体包括以下步骤:

s4.1:step判断业务数据的step是否为当前态,若不是当前态则将数据重新发回mq,若是当前态进入下一步;

s4.2:连接redis,对业务数据中唯一性id进行加锁,若加锁成功,则处理当前业务,若加锁失败,结束当前任务;

s4.3:业务数据处理完毕后,将业务数据的当前状态更新为下一个step所需要的状态,更新完毕后将业务数据推送至mq,当前任务结束;

s4.4:若出现异常情况,将不同异常情况推送至补偿队列中,特殊处理。

作为优选,所述step为多服务多副本模块。

作为优选,所述mq为集群环境。

作为优选,所述s2中的每个step在集群环境中,每有一个服务对应有一个step副本。

作为优选,所述业务数据在被处理一次后必定会被消费。

作为优选,所述s4.2中对业务数据唯一性id进行加锁采用的是分布式锁redisson。

有益效果:本发明利用了mq对异步、高并发的支持来实现多服务之间的协同处理,最终达到资源利用率最高的场景,提高了数据处理能力以及数据处理效率。

附图说明

图1是本发明的流程示意图。

具体实施方式

下面将结合本申请实施例中的附图1,对本申请实施例中的技术方案进行清楚、完整地描述。

本发明中各英文缩略语的中文表述如下:

java:java编程语言;

step:业务模块;

mq:开源消息队列;

redis:开源nosql数据库;

rsdis-cluster:redis集群;

redisson:在redis基础上的一个java驻内存数据网格。

本发明的各个步骤如下:

s1:程序启动时启动主流程入口,具体包括以下步骤:

s1.1:程序从数据库中查询数据,查询条件为业务条件;

s1.2:数据查询完毕后,开始组装step需要的数据格式;

s1.3:数据组装完毕后,发送至mq,mq为集群环境;

s2:将java的业务功能分为step1、step2、...、stepn,其中n为大于1的正整数,step为多服务多副本模块,每个step在集群环境中,每有一个服务对应有一个step副本,多个step监听同一个mq;

s3:在需要处理的业务数据来临时,多个step同时监听到该条数据,但该条数据仅会被全局中的一个step所处理,同时该条业务数据在被处理一次后必定会被消费;

s4:step处理业务数据,具体包括以下步骤:

s4.1:step判断业务数据的step是否为当前态,若不是当前态则将数据重新发回mq,若是当前态进入下一步;

s4.2:连接redis,对业务数据中唯一性id采用分布式锁redisson进行加锁,若加锁成功,则处理当前业务,若加锁失败,结束当前任务;

s4.3:业务数据处理完毕后,将业务数据的当前状态更新为下一个step所需要的状态,更新完毕后将业务数据推送至mq,当前任务结束;

s4.4:若出现异常情况,将不同异常情况推送至补偿队列中,特殊处理。

本实施例还提供了一种基于云平台的分布式流程处理解决系统,包括有核心控制模块、消息模块、事务模块、网络接口、存储器和处理器,其中核心控制模块用于数据的接入和组装;消息模块用于每个step之前的消息接入;事务模块用于分布式事务组件,为处理异常情况的数据库;网络接口用于在与其他外部网元之间进行收发信息过程中,实现信号的接收和发送;存储器用于存储能够在处理器上运行的计算机程序指令;处理器用于在运行计算机程序指令时,执行权利要求1-6中任一项所述的一种基于云平台的分布式流程处理解决方法的步骤。

本实施例还提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,在处理器执行所述计算机程序时可实现以上所描述的方法。所述计算机可读介质可以被认为是有形的且非暂时性的。非暂时性有形计算机可读介质的非限制性示例包括非易失性存储器电路(例如闪存电路、可擦除可编程只读存储器电路或掩膜只读存储器电路)、易失性存储器电路(例如静态随机存取存储器电路或动态随机存取存储器电路)、磁存储介质(例如模拟或数字磁带或硬盘驱动器)和光存储介质(例如cd、dvd或蓝光光盘)等。计算机程序包括存储在至少一个非暂时性有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括或依赖于存储的数据。计算机程序可以包括与专用计算机的硬件交互的基本输入/输出系统(bios)、与专用计算机的特定设备交互的设备驱动程序、一个或多个操作系统、用户应用程序、后台服务、后台应用程序等。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应当说明的是:所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

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