GraphQL tws mirror dedecms api cmd jq选择第一个子元素 jquery第一个子元素 jq去除空格 jquery事件绑定方法 eclipse闪退 cpm怎么计算 maven插件 mysql卸载工具 python操作mysql python中集合 python模块大全 javaapplet java在线教程 java包 java开发 java入门新手教程 java数组扩容 javarandom java中instanceof java路径 java遍历set java常用数据结构 linux用户 opengl编程指南 服务器系统下载 python游戏代码 gilisoft 通讯录管理系统 16进制编辑器 猫眼电影票 小度音箱app mp4剪切合并大师 一键换肤大师 服务器之家 键盘指法练习游戏
当前位置: 首页 > 学习教程  > 编程语言

开源流程引擎该如何选择flowable还是camunda?

2020/10/16 17:49:44 文章标签:

一、功能方面对比 来自:https://blog.csdn.net/qq_30739519/article/details/86682931 由于Flowable与Camunda好多功能都是类似的,因此在这里重点罗列差异化的功能 (1)camunda支持流程实例的迁移,比如同一个流程有多…

一、功能方面对比

来自:https://blog.csdn.net/qq_30739519/article/details/86682931

由于Flowable与Camunda好多功能都是类似的,因此在这里重点罗列差异化的功能

(1)camunda支持流程实例的迁移,比如同一个流程有多个实例,多个流程版本,不同流程实例运行在不同的版本中,camunda支持任意版本的实例迁移到指定的流程版本中,并可以在迁移的过程中支持从哪个节点开始。

(2)camunda基于PVM技术,所以用户从Activii5迁移到camunda基本上毫无差异。flowable没有pvm了,所以迁移工作量更大(实例的迁移,流程定义的迁移、定时器的迁移都非常麻烦)。

(3) camunda对于每一个CMD命令类都提供了权限校验机制,flowable没有。

(4)camunda继续每一个API都有批处理的影子,flowable几乎没有。比如批量挂起流程、激活流程等,使用camunda可以直接使用API操作,使用Flowable则只能自己去查询集合,然后循环遍历集合并操作。

(5)camunda很多API均支持批处理,在批量处理的时候可以指定是异步方式操作或者是同步方式操作。异步的话定时器会去执行。Flowable没有异步批处理的机制。比如批量异步删除所有的历史数据。

(6)camunda启动实例的时候支持从哪个节点开始,而不是仅仅只能从开始节点运转实例。Flowable仅仅只能从开始节点运转实例。

(7)camunda支持任意节点的跳转,可以跳转到连线也可以跳转到节点,并且在跳转的过程中支持是否触发目标节点的监听器。flowable没有改原生API需用户去扩展。

(8)camunda支持双异步机制,第一个异步即节点可以异步执行,第二个异步方式是:完成异步任务后,还可以继续异步去执行任务后面的连线。所以称之为双异步机制,flowable只有第一种异步方式。

(9)camunda支持多种脚本语言,这些脚本语言可以在连线上进行条件表达式的配置,开箱即用。比如python、ruby、groovy、JUEL。flowable仅仅支持JUEL、groovy。开箱即用的意思就是如果想用python直接引入jython包就可以用了,不需要额外配置。

(10)camunda支持外部任务,比如我们有时候想在一个节点中执行调用第三方的API或者完成一些特定的逻辑操作,就可以使用外部任务,外部任务有两种表,并支持第三方系统定期来抓取并锁定外部任务,然后执行业务完毕之后,完成外部任务,流程实例继续往下执行。外部任务的好处就是解决了分布式事物的问题。在flowable中我们可以使用httpTask任务,我个人更倾向于camunda外部任务,因为这个外部任务有外部系统决定什么时候完成,httpTask是不等待任务,实例走到这个节点之后,调用一个api就直接往下跑了,外部任务不会继续往下跑,有外部系统去决定啥时候往下跑。

(11)camunda支持为用户定制一些个性化的偏好查找API,比如张三每次查询任务的时候,一般固定点击某某三个查询条件过滤数据,使用camunda就可以将这三个查询条件进行持久化,下次张三来了,就可以直接根据他的偏好进行数据的过滤,类似机器学习。

(12)camunda支持历史数据的批量删除或者批量迁移到其他介质,比如批量迁移到es,flowable没有该机制。

(13)camunda支持在高并发部署流程的时候,是否使用锁机制,flowable没有该机制。

(14) camunda支持单引擎多组合、多引擎多库。flowable仅仅支持单引擎多组合。

(15) camunda支持流程实例跨流程定义跳转,flowable没有该机制。

(16) camunda支持分布式定时器,flowable没有该机制。

(17) flowable支持nosql,camunda只有nosql的解决方案。

(18)camunda支持优化流程,以及了解流程引擎的瓶颈所在和每个环节的耗时,flowable没有该机制。

(19) camunda修改了流程模板xml解析方式,相比flowable性能更好。

(20)camunda在解析流程模板xml的时候,去除了activiti5的双解析机制,相对而言耗时时间更短。flowable没有了pvm所以规避了双解析机制。

(21)camunda可以在任意节点添加任意的属性,flowable原生API没有,需要自己扩展。

(22)camunda框架没有为流程生成图片的API(所有流程图展示以及高亮均在前端动态计算),activiti5/6/flowable5/flowable6有图片生成以及高亮的API.

(23)camunda可以在节点中定义定时作业的优先级,也可以在流程中进行全局优先级的定义。当节点没有定义优先级的时候可以使用全局的优先级字段。activiti5/6/flowable5/flowable6没有改功能。

(24)camunda可以再流程中定义流程的tag标记,activiti5/6/flowable5/flowable6没有改功能。

(25)camunda/activiti5/6/flowable5/flowable6 均不支持国产数据库,比如人大金仓 和 达梦。

(26)flowable6支持LDAP,openLDAP,camunda不支持。activiti5不支持。

二、性能方面对比

通过flowable和camunda多组对比测试,camunda性能比flowablet提升最小10%,最大39%,而且camunda无报错,flowable有报错,camunda在高并发场景下稳定性更好。

具体内容见:https://blog.csdn.net/wxz258/article/details/109030329


本文链接: http://www.dtmao.cc/news_show_300204.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?