不要问为什么现在才开始关注性能问题,当没有集成完全功能时,当数据量没有到一定的程度时,优先考虑性能的价值不是太高,并且可能在全能力推进过程中,过早的性能优化会给业务集成带来不必要的麻烦.....
作为企业级的轻量统一流程平台,业务的适用性必须强大。本次构建采用了消息队列作为行为扩展点,所以后续业务集成对统一流程平台的性能影响不大。
统一流程平台之上行审批方案,从当下的业务执行逻辑来看,是庞大而复杂的,也许一个4-5个审批环节的流程,在发起时能直接运行结束。统一流程平台必须不断的自我探测与驱动,链式响应完成所有可执行的行为,其中涉及到之身流转与业务编排消息/任务办理事件消息等体系化的工作。
所以,如果有人说统一流程平台的性能要达到秒杀系统级别,那就可以不用统一流程平台了----根本不符合实际情况。我们能做的,是科学分析/尽量优化/基本达到事务办理可接受的程度即可。可以对一些审批行为优化,达到大多数人的高速响应。
统一流程平台核心要保障的是数据的最终一致性。数据操作中的事务必须遵守尽可能迟的启动,尽可能早的退出。
基于以上规则,本次性能优化的方向是:
1).统一流程平台中数据库事务梳理,清理循环调用中的事务嵌套。
2).分析统一流程平台中的数据关系,尽可能的压缩高频使用数据表中的数据量,基于需要尽早迁移非必要数据。
3).对代码中的执行逻辑进行优化,尽可能降低不必要的重复操作。