流程引擎camunda集群部署方案

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



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Camunda REST提供了一种方便的方法来部署流程。通过Camunda REST,开发人员可以使用HTTP请求将流程定义部署Camunda引擎中。 为了部署流程,首先需要使用POST请求创建一个新的部署。请求的URL应该是`/deployment/create`。请求体中,我们需要提供流程定义文件的详细信息,例如BPMN文件的名称、位置和版本等。可以选择性地提供其他的参数,例如部署名称和分类。 成功创建部署后,服务器将返回一个包含了部署ID和其他相关信息的响应。这个部署ID可以用来访问和管理这个部署。 接下来,我们可以使用GET请求访问`/deployment`来获取所有已部署流程。这个请求将返回一个包含了所有部署的列表。我们可以使用部署ID、部署名称、部署时间和分类等参数来过滤结果。 如果我们需要获取特定部署的详细信息,可以使用GET请求访问`/deployment/{deploymentId}`,其中`{deploymentId}`是要获取信息的部署的ID。 另外,我们还可以使用GET请求来获取已部署流程定义。通过访问`/deployment/{deploymentId}/resources`,我们可以获取到指定部署ID下的所有流程定义资源。同样,我们可以使用参数来过滤结果。 最后,如果需要删除一个已部署部署,可以使用DELETE请求访问`/deployment/{deploymentId}`。这将会删除指定ID的部署以及与之关联的所有流程定义。 总之,通过Camunda REST,我们可以使用HTTP请求方便地部署、访问和管理流程定义。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值