CN113204575B - 一种基于云平台的分布式流程处理解决方法及系统 - Google Patents
一种基于云平台的分布式流程处理解决方法及系统 Download PDFInfo
- Publication number
- CN113204575B CN113204575B CN202110588986.9A CN202110588986A CN113204575B CN 113204575 B CN113204575 B CN 113204575B CN 202110588986 A CN202110588986 A CN 202110588986A CN 113204575 B CN113204575 B CN 113204575B
- Authority
- CN
- China
- Prior art keywords
- data
- cloud platform
- processing solution
- steps
- distributed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
Abstract
本发明公开了一种基于云平台的分布式流程处理解决方法及系统,本发明将一个复杂java实现的业务功能代码,逐一拆分成多个Step,每个Step记录当前执行状态的信息,存于MQ中保持唯一性,每个Step在不同服务器有相同的子任务副本,通过判断Step当前状态,在集群环境中共同执行,本发明利用了MQ对异步、高并发的支持来实现多服务之间的协同处理,最终达到资源利用率最高的场景,提高了数据处理能力以及数据处理效率。
Description
技术领域
本发明涉及分布式领域以及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、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
Claims (8)
1.一种基于云平台的分布式流程处理解决方法,其特征在于:包括以下步骤:
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:若出现异常情况,将不同异常情况推送至补偿队列中,特殊处理。
2.根据权利要求1所述的一种基于云平台的分布式流程处理解决方法,其特征在于:所述Step为多服务多副本模块。
3.根据权利要求1所述的一种基于云平台的分布式流程处理解决方法,其特征在于:所述MQ为集群环境。
4.根据权利要求1所述的一种基于云平台的分布式流程处理解决方法,其特征在于:所述S2中的每个Step在集群环境中,每有一个服务对应有一个Step副本。
5.根据权利要求1所述的一种基于云平台的分布式流程处理解决方法,其特征在于:所述业务数据在被处理一次后必定会被消费。
6.根据权利要求1所述的一种基于云平台的分布式流程处理解决方法,其特征在于:所述S4.2中对业务数据唯一性ID进行加锁采用的是分布式锁redisson。
7.一种基于云平台的分布式流程处理解决系统,其特征在于:包括有核心控制模块、消息模块、事务模块、网络接口、存储器和处理器,其中:
所述核心控制模块用于数据的接入和组装;
所述消息模块用于每个Step之前的消息接入;
所述事务模块用于分布式事务组件,为处理异常情况的数据库;
所述所述网络接口,用于在与其他外部网元之间进行收发信息过程中,实现信号的接收和发送;
所述存储器,用于存储能够在所述处理器上运行的计算机程序指令;
所述处理器,用于在运行所述计算机程序指令时,执行权利要求1-6中任一项所述的一种基于云平台的分布式流程处理解决方法的步骤。
8.一种计算机存储介质,其特征在于:所述计算机存储介质存储有一种基于云平台的分布式流程处理解决方法的程序,所述一种基于云平台的分布式流程处理解决方法的程序被至少一个处理器执行时实现权利要求1~6中任一项所述的一种基于云平台的分布式流程处理解决方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110588986.9A CN113204575B (zh) | 2021-05-28 | 2021-05-28 | 一种基于云平台的分布式流程处理解决方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110588986.9A CN113204575B (zh) | 2021-05-28 | 2021-05-28 | 一种基于云平台的分布式流程处理解决方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113204575A CN113204575A (zh) | 2021-08-03 |
CN113204575B true CN113204575B (zh) | 2023-08-01 |
Family
ID=77023503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110588986.9A Active CN113204575B (zh) | 2021-05-28 | 2021-05-28 | 一种基于云平台的分布式流程处理解决方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113204575B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013000135A1 (zh) * | 2011-06-29 | 2013-01-03 | 中兴通讯股份有限公司 | 一种分布式消息的加锁方法和系统 |
CN106161455A (zh) * | 2016-07-25 | 2016-11-23 | 恒安嘉新(北京)科技有限公司 | 一种多模块和引擎分布式云管理系统及检测方法 |
WO2017036336A1 (zh) * | 2015-09-01 | 2017-03-09 | 阿里巴巴集团控股有限公司 | 一种基于云平台的业务数据的处理方法和装置 |
CN111309294A (zh) * | 2020-02-29 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种业务处理方法、装置及电子设备和存储介质 |
CN111651522A (zh) * | 2020-05-27 | 2020-09-11 | 泰康保险集团股份有限公司 | 一种数据同步方法及装置 |
CN111813346A (zh) * | 2020-07-23 | 2020-10-23 | 山东超越数控电子股份有限公司 | 基于云平台搭建Ceph分布式存储的方法、系统、设备及介质 |
CN111813791A (zh) * | 2020-06-17 | 2020-10-23 | 上海悦易网络信息技术有限公司 | 一种分布式补偿事务的方法及设备 |
CN111935238A (zh) * | 2020-07-16 | 2020-11-13 | 浪潮思科网络科技有限公司 | 一种云平台负载均衡管理系统、方法、设备及介质 |
-
2021
- 2021-05-28 CN CN202110588986.9A patent/CN113204575B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013000135A1 (zh) * | 2011-06-29 | 2013-01-03 | 中兴通讯股份有限公司 | 一种分布式消息的加锁方法和系统 |
WO2017036336A1 (zh) * | 2015-09-01 | 2017-03-09 | 阿里巴巴集团控股有限公司 | 一种基于云平台的业务数据的处理方法和装置 |
CN106161455A (zh) * | 2016-07-25 | 2016-11-23 | 恒安嘉新(北京)科技有限公司 | 一种多模块和引擎分布式云管理系统及检测方法 |
CN111309294A (zh) * | 2020-02-29 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种业务处理方法、装置及电子设备和存储介质 |
CN111651522A (zh) * | 2020-05-27 | 2020-09-11 | 泰康保险集团股份有限公司 | 一种数据同步方法及装置 |
CN111813791A (zh) * | 2020-06-17 | 2020-10-23 | 上海悦易网络信息技术有限公司 | 一种分布式补偿事务的方法及设备 |
CN111935238A (zh) * | 2020-07-16 | 2020-11-13 | 浪潮思科网络科技有限公司 | 一种云平台负载均衡管理系统、方法、设备及介质 |
CN111813346A (zh) * | 2020-07-23 | 2020-10-23 | 山东超越数控电子股份有限公司 | 基于云平台搭建Ceph分布式存储的方法、系统、设备及介质 |
Non-Patent Citations (1)
Title |
---|
基于微服务架构的数据一致性方法研究;杨成荣;刘峻松;孙新杰;吴超;;电脑知识与技术(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113204575A (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2535810B1 (en) | System and method for performing distributed parallel processing tasks in a spot market | |
CN109582466B (zh) | 一种定时任务执行方法、分布式服务器集群及电子设备 | |
EP2306315B1 (en) | Fast determination of compatibility of virtual machines and hosts | |
US8799906B2 (en) | Processing a batched unit of work | |
US10338958B1 (en) | Stream adapter for batch-oriented processing frameworks | |
US20180091586A1 (en) | Self-healing a message brokering cluster | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
CN110648178A (zh) | 一种增加kafka消费能力的方法 | |
CA2928865C (en) | Strict queue ordering in a distributed system | |
EP3940991B1 (en) | Blockchain event processing method and apparatus | |
CN115396377B (zh) | 对象存储的服务质量优化方法、装置、设备及存储介质 | |
CN111427943A (zh) | 一种etl系统中任务管理方法和装置 | |
US10789183B2 (en) | Aggregation handling | |
US9894143B1 (en) | Pre-processing and processing pipeline for queue client | |
CN113204575B (zh) | 一种基于云平台的分布式流程处理解决方法及系统 | |
US9268608B2 (en) | Automatic administration of UNIX commands | |
CN107958414B (zh) | 一种清除cics系统长交易的方法及系统 | |
CN113360558B (zh) | 数据处理方法、数据处理装置、电子设备及存储介质 | |
US11095745B1 (en) | Cloud-based scheduling of data operations to an object storage using an operation pool | |
CN113742065A (zh) | 一种基于kubernetes容器集群的分布式强化学习方法及装置 | |
US11263184B1 (en) | Partition splitting in a distributed database | |
US10419368B1 (en) | Dynamic scaling of computing message architecture | |
CN111930720A (zh) | 数据倾斜的处理方法、系统、电子设备和介质 | |
US20230020580A1 (en) | Efficiently Maintaining a Globally Uniform-in-Time Execution Schedule for a Dynamically Changing Set of Periodic Workload Instances | |
CN114546721B (zh) | 集群中应用程序的备份方法、系统及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230306 Address after: 851414 11th Floor, Liuwu Building, Liuwu New District, Lhasa, Tibet Autonomous Region Applicant after: Tibet ningsuan Technology Group Co.,Ltd. Address before: 210000 floor 11, building A1, zone a, Huizhi science and Technology Park, Qixia District, Nanjing, Jiangsu Province Applicant before: DILU TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |