基于flowable的upp(统一流程平台)运行性能优化(1)

经过一年规模化应用,近期现场反馈出现运行性能问题。其实,我们在构建upp系统时,已经知道了在一定时间点后会出现性能问题,但迫于团队整体研发平衡,以及对当前计算机性能的评估,就停留了下来。

当下,到了解决相关问题的时候了。

 经过一年的线上运行,接入流程平台的业务功能有16类,定义了505条流程,经过5454次的部署操作。已经发起的单据有58499个,进行了378950次的执行审批。基本当前的运行数据及集团化功能实际验证,upp系统的功能应该覆盖了业务全流程。所以,在最近完成的代理审批加持下,upp功能性研发以接近尾声,后续将基于upp进行深入的应用:如全运营流程风险预警/事前合规审查等业务的集成。

针对upp系统的性能问题,我们必须从原理上进行分析:upp的内核时flowable6.5,在此基础上引入符合中国国情的业务处理,最终形成了符合合同/案件/法务/风险-合规 业务的流程处理平台,再进一步解决业务系统接入,将形成较为通用的(upp)统一流程平台。

所以,性能问题的解决,需要对flowable数据模型进行分析.

flowable数据模型采用了套表的概念,在数据模型命名中基本明确:

从上图中,我们可以发现flowable自己的数据模型在命名时进行了分类,由于flowable是一套独立的中立的流程模型,所以本身就是一套独立的系统:如支持的表单模型act_fo表进行管理,并且基于bpmn规范的基础上,完成了cmmn、dmn规范的整合,让flowablep平台形成了较为全面的标准化商务流程与面向突发事件的数据驱动模型。

upp平台当前使用了bpmn模块,因为单据模型/组织结构等采用了企业级标准主键。

所以,本次性优化将基于act_ge_*、act_de_*,act_re_*,act_ru_*,act_hi_*这五大类表进行分析》

1.act_ge_*

从上图可以知道:act_get_bytearray表如果不进行处理,随着时间的推移,将会层级大量的由运行过程中变量大对象加入的信息。

所以,当我们明确相关流程已经终审,且不再支持终审取回时,我们需要对存储变量相关的信息进行清理。

基于upp的模型设计,分析过程如下:

select * from act_ge_bytearray where DEPLOYMENT_ID_  is null;

select distinct name_ from act_ge_bytearray where DEPLOYMENT_ID_  is null;

select name_,count(*) from act_ge_bytearray where DEPLOYMENT_ID_  is null group by name_

由于变量表区分运行表与历史表,所以需要结合这两张表的信息,进行相关的数据清理。

2.act_de_*

基于以上分析,act_de_*不对业务运行性能进行影响。 

3.act_re_*

当前看,对流程运行暂时无影响,但如果流程规模扩展到1w以上,将需要进行相关的处理。

4.act_ru_*

ru表的提出就是为了解决运行性能而存在的,所以基本不需要考虑。但flowable只是我们的一个内核之一,由很多业务将在外围控制流程的接受,如手动终审流程方案等。所以,我们需要提供对外围流程终审方案进行支持,以便让运行库最小化运行。

5.act_hi_*

基于当前数据分析,保证flowable运行库数据量最小化,将是优化性能的核心方向。

最后,upp平台到底是怎样的一个组织方式,给大家公布下:

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Flowable性能优化,以下是一些建议: 1. 减少数据量:尽量避免在Flowable中处理大量的数据。可以通过限制查询结果集的大小,使用分页或者限制返回的记录数来减少数据量。 2. 使用合适的索引:为经常被查询的字段创建索引,可以提高查询性能。同时,避免使用不必要的索引,因为索引的创建和维护也会带来一定的开销。 3. 避免全表扫描:尽量避免对整个表进行扫描操作,这样会消耗大量的资源和时间。使用合适的查询条件、索引和优化语句来减少扫描范围。 4. 使用合适的缓存机制:合理使用缓存可以显著提高查询性能。可以使用Flowable自带的缓存功能,或者结合其他缓存机制来优化。 5. 批量操作:当需要对大量数据进行修改或者删除时,考虑使用批量操作,而不是逐条操作。批量操作可以减少数据库访问次数,提高性能。 6. 调优SQL语句:优化SQL语句可以显著提高查询性能。可以通过分析执行计划,优化查询语句的执行路径,减少不必要的操作和重复计算。 7. 使用合适的连接池配置:合理配置连接池可以提高数据库的连接性能。根据具体的需求和负载情况,调整连接池的大小、最大连接数等参数。 8. 使用合适的硬件资源:如果条件允许,可以通过升级硬件资源来提升Flowable的性能,例如增加内存、升级CPU等。 需要注意的是,性能优化是一个综合考虑的过程,需要根据具体的应用场景和需求来进行调优。可以通过监测系统的性能指标,进行性能测试和压力测试,找出瓶颈并进行有针对性的优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值