本发明涉及流程引擎云计算,具体而言,涉及一种基于activiti多租户的构建方法。
背景技术:
1、activiti是一个业务流程管理(business process management,bpm)平台 ,适用于多环节业务协同和调度的系统应用, 以独立数据库节点节点多租户模式部署, 存在的局限性是存在数据库单节点的性能瓶颈。
2、在运营saas架构模式下,以多租户方式运行的工作流引擎服务, 采用单节点方式运行, 较难满足多租户的存储和计算的性能要求, 系统的并发和弹性扩展方面的局限性大。单节点多租户模式一方面存在性能问题,也不适合做数据应用的隔离、业务的快速适配和调度管理,在客户定制需求方面存在较大的局限性, 平台运营和数据管理复杂度高, 不便于应用和节点的弹性扩展。
技术实现思路
1、本发明的目的在于提供一种基于activiti多租户的构建方法,其能够实现业务流程管理平台中应用和存储节点的弹性扩展和伸缩, 简化平台维护工作,提高运行的效率。
2、本发明的技术方案为:
3、第一方面,本申请提供一种基于activiti多租户的构建方法,其包括以下步骤:
4、s1、构建主备的内存数据库,在应用节点启动时,加载数据至内存数据库来进行待办业务的处理;
5、s2、通过流程调度从内存数据库中加载流程引擎,以通过客户端调用流程引擎按定义执行任务;
6、s3、将网关适配至所在应用节点,使应用节点融合流程引擎和内存数据库的事件;
7、s4、通过融合后的应用节点按事件来执行数据的归档,并按事件驱动归档的数据到对应租户id的数据库节点,以完成多租户的构建。
8、由此,实现了数据的实时归档处理和验证。
9、进一步地,步骤s1包括:构建主备的内存数据库,在应用节点启动时,通过应用节点来对应节点数据库以将流程引擎的数据同步至主备内存数据库,然后利用不同的应用节点处理分配租户的流程数据以实现待办业务的处理。
10、进一步地,步骤s2中,上述流程调度的过程包括:以网关统一入口请求,按配置管理和租户编号来进行统一的调度和返回,并通过应用节点根据租户与数据库节点的对应关系启动流程或进行流程业务的办理。
11、进一步地,上述流程业务包括数据异常、节点挂起和数据库切换。
12、进一步地,步骤s2中,上述通过客户端调用流程引擎按定义执行任务的过程包括:流程引擎接受客户端中用户上传的输入参数,并传递至对应的任务中,按照流程定义的任务内容和走向配置,进行当前任务的办理和流转。
13、进一步地,步骤s2还包括:将客户端运行期间产生或新增的流程定义的实例业务通过应用节点以增量方式同步至内存数据库,并通过全局唯一id控制加载内存数据库,在当前任务办结时,利用流程引擎发布办结消息,通过客户端以异步方式等待内存数据消息的触发,在内存数据同步至对应数据库节点后删除内存数据库已经办结的流程任务,并跟踪实现数据库节点的历史数据分发。
14、进一步地,步骤s3中,上述将网关适配至所在应用节点的过程包括:在确认当前流程引擎操作所在应用节点后,利用网关进行定向调度,使得流程业务在匹配的流程引擎的应用节点上执行。
15、进一步地,步骤s3中,在上述将网关适配至所在应用节点之前还包括:客户端按照规范携带租户id向网关调用流程启动和任务办理操作,应用网关接受租户、流程定义编号、任务id和流程实例的参数,通过内存数据确定最终所在租户的应用节点来执行适配操作。
16、进一步地,步骤s3中,在上述将网关适配至所在应用节点之后还包括:构建activiti的状态机以在每个执行环节和数据节点对租户id进行标记和绑定。
17、由此,可以保证数据的一致。
18、进一步地,步骤s4包括:
19、s41、通过融合后的应用节点按照租户编号定义内存数据库的消息时间,将流程引擎完成的任务从内存数据同步至数据库节点,并进行一致性验证以完成数据的归档;
20、s42、将归档后的数据按事件处理逻辑对接activiti的工作流引擎,实时操作业务到对应租户id的数据库节点,通过会查验证以完成多租户的构建。
21、由此,确保了内存数据库与数据库节点的数据一致。
22、相对于现有技术,本发明至少具有如下优点或有益效果:
23、本发明提供一种基于activiti多租户的构建方法,通过改造activiti的多租户能力,使其具备多节点应用和数据库的能力,形成了灵活的多租户的运行模式,通过处理使得应用节点在内存数据库上运行,从而具备高并发的分流能力,在存储和应用上均支持多节点的多租户运行模式,形成运营级的流程引擎,实现应用和存储节点的弹性扩展和伸缩,简化了平台维护工作,提高了系统运行效率。
1.一种基于activiti多租户的构建方法,其特征在于,包括以下步骤:
2.如权利要求1所述的一种基于activiti多租户的构建方法,其特征在于,步骤s1包括:构建主备的内存数据库,在应用节点启动时,通过应用节点来对应节点数据库以将流程引擎的数据同步至主备内存数据库,然后利用不同的应用节点处理分配租户的流程数据以实现待办业务的处理。
3.如权利要求1所述的一种基于activiti多租户的构建方法,其特征在于,步骤s2中,所述流程调度的过程包括:以网关统一入口请求,按配置管理和租户编号来进行统一的调度和返回,并通过应用节点根据租户与数据库节点的对应关系启动流程或进行流程业务的办理。
4.如权利要求3所述的一种基于activiti多租户的构建方法,其特征在于,所述流程业务包括数据异常、节点挂起和数据库切换。
5.如权利要求1所述的一种基于activiti多租户的构建方法,其特征在于,步骤s2中,所述通过客户端调用流程引擎按定义执行任务的过程包括:流程引擎接受客户端中用户上传的输入参数,并传递至对应的任务中,按照流程定义的任务内容和走向配置,进行当前任务的办理和流转。
6.如权利要求5所述的一种基于activiti多租户的构建方法,其特征在于,步骤s2还包括:将客户端运行期间产生或新增的流程定义的实例业务通过应用节点以增量方式同步至内存数据库,并通过全局唯一id控制加载内存数据库,在当前任务办结时,利用流程引擎发布办结消息,通过客户端以异步方式等待内存数据消息的触发,在内存数据同步至对应数据库节点后删除内存数据库已经办结的流程任务,并跟踪实现数据库节点的历史数据分发。
7.如权利要求1所述的一种基于activiti多租户的构建方法,其特征在于,步骤s3中,所述将网关适配至所在应用节点的过程包括:在确认当前流程引擎操作所在应用节点后,利用网关进行定向调度,使得流程业务在匹配的流程引擎的应用节点上执行。
8.如权利要求7所述的一种基于activiti多租户的构建方法,其特征在于,步骤s3中,在所述将网关适配至所在应用节点之前还包括:客户端按照规范携带租户id向网关调用流程启动和任务办理操作,应用网关接受租户、流程定义编号、任务id和流程实例的参数,通过内存数据确定最终所在租户的应用节点来执行适配操作。
9.如权利要求8所述的一种基于activiti多租户的构建方法,其特征在于,步骤s3中,在所述将网关适配至所在应用节点之后还包括:构建activiti的状态机以在每个执行环节和数据节点对租户id进行标记和绑定。
10.如权利要求1所述的一种基于activiti多租户的构建方法,其特征在于,步骤s4包括: