发布时间:2023-05-21 19:00
目前主流的Java开源流程引擎有Activiti、Flowable、Camunda,笔者在进行流程引擎技术选型时,除了功能方面,性能和稳定性是尤其关注的指标,是选择Flowable?还是Camunda?我们先进行了二者性能对比测试,先分享给大家。
PC笔记本,8G内存,CPU两核i5-8250
压测工具:JMeter5.1
数据库:mysql5.7
Flowable版本:6.4.1
Camunda版本:7.10
基于springboot编写测试代码,调用流程引擎的API接口,测试流程图如下:
测试过程:流程启动——获取待办——流程审批1——获取待办——流程审批2——流程结束
测试代码逻辑:(camunda代码)其中,流程名称叫flow-test1, 审批人为demo, 增加1个流程变量taskuser
通过压力测试工具JMeter分别对flowable和camunda进行高并发压力测试,并发用户数从100到1000,JMeter设置Ramp-up为1,循环次数为10,测试数据如下:
并发数 | flowable | camunda | 性能对比(Camunda比flowable提升) |
---|---|---|---|
100并发 | 2269 ms | 1631 ms | +39% |
200并发 | 3907 ms | 3489 ms | +12% |
400并发 | 7250 ms | 6452 ms | +12% |
600并发 | 9943 ms | 8700 ms | +14% |
800并发 | 13700 ms | 12400 ms | +10% |
1000并发 | 18800 ms | 15700 ms | +20% |
在1000并发时,flowable6后台报错,但能执行成功.报错信息为:Caused by:com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction;camunda后台无报错,执行全部成功。
通过flowable和camunda多组对比测试,camunda性能比flowablet提升最小10%,最大39%,而且camunda无报错,flowable有报错,camunda在高并发场景下稳定性更好。云程BPM(云程低代码开发平台)基于camunda开发,可以在线体验,并在多个项目进行验证,性能表现良好