流程引擎camunda集群部署方案

来源:互联网 发布:书生软件推广 编辑:程序博客网 时间:2024/06/05 10:14

camunda是一个流程引擎框架,fork activiti得来,官网:https://camunda.org/


集群部署的效果;

1、多个机器运行流程应用

2、流程有更新的时候,兼容老流程(通常新流程是添加节点,和处理逻辑)

3、部署新应用的机器能执行新老job,部署老应用的机器不能执行,新应用的job


修改点:

1、流程定义的发布,原版中,需要发布的bpmn与数据库中最新的流程定义比较,如果不同就发布

存在问的题:多机部署的情况下,新老应用来回重启会导致数据库中的流程定义来回发布

顾修改点为:发布bpmn时和数据库中的所有流程定义比较,如果找不到相同的再发布。

2、应用机拿数据库job的方式,原版中,应用机器是拿所有版本的job,有一个配置jobExecutorDeploymentAware只拿自己本次部署的,但是会导致没法处理比本次版本低的job

顾修改点为:在流程定义发布的时候,缓存比发布版本低的所有deploymentId,从数据库拿job的时候通过这些deploymentId来过滤

3、应用发布流程单修改,通过流程定义的某个版本号来启动流程。此点需要基于1中缓存,与bpmn相同的数据库流程定义id


以上源码修改之后

camunda就可以满足集群部署了

修改的文件:

        modified:   pom.xml
        modified:   src/main/java/org/camunda/bpm/engine/ProcessEngineConfiguration.java
        modified:   src/main/java/org/camunda/bpm/engine/impl/cfg/ProcessEngineConfigurationImpl.java
        modified:   src/main/java/org/camunda/bpm/engine/impl/cmd/DeployCmd.java
        modified:   src/main/java/org/camunda/bpm/engine/impl/persistence/entity/JobManager.java
        modified:   src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Job.xml



0 0