01#
背景
随着会员业务的发展,基于商品、订单、权益的中台体系逐渐成形,可以快速支持业务的创新探索,如果业务模式可行,功能就会落地到配置后台。虽然业务模式多样化,但业务的配置后台都需要调用中台通用的配置接口,比如:商品、价格、库存、活动等配置,在规则的组装上就出现了重复定制开发的问题。
为了解决这类问题,我们尝试了从传统瀑布流开发模式转变到流程引擎模式的探索,本文分享一下实践经验,希望能够给大家带来一些启发。
02#
方案设计
通用接口设计为组件,通过流水线的方式进行组装,每个业务配置功能不需要开发,可参考工作台模式(见下图),通过“工作台、组件、规则”的结合,体现了高度解耦、灵活编排的设计理念。这种设计不仅简化了复杂业务逻辑的实现,还赋予系统很好的扩展性和维护性,是面向复杂场景的架构选择。
工作台
工人工作的工作台
统一上下文环境:工作台如同一个全局的数据枢纽,为整个流程提供统一的上下文支持。
仓库功能:它存储着组件所需的输入参数和中间产物,确保资源高效流转。
双向数据交换:组件可以自由从工作台中汲取所需资源,同时也将处理结果回传给工作台。
组件
在不同位置上工作的工人
职责明确:每个组件专注于特定的业务逻辑,是业务功能的执行者。
高内聚低耦合:组件之间相互独立,不直接交互,如同各司其职的工人保持适当距离。
灵活调度:组件通过工作台共享资源,自由调度所需数据,专注完成自己的任务。
规则
灵活高效的安排每个工人的座位
简约配置:规则通过简单的配置定义组件的执行顺序,赋予业务流程极高的可读性和灵活性。
动态调整:规则支持运行时灵活调整组件的编排,如同指挥家挥动指挥棒随时改变节奏。
快速扩展:无论是新增、替换还是移除组件,都可以即时完成,适应变化多端的业务需求。
03#
技术架构
在众多的流程引擎中,选择了国产开源框架LiteFlow,该框架轻量、配置简单、易上手、文档完善、功能丰富、试错成本低,符合我们的需求。
LiteFlow架构图
LiteFlow功能介绍
规则表达式
规则表达式(EL表达式)是LiteFlow框架中定义组件执行流程的核心,它采用简洁的DSL语法,通过字符串形式定义规则,提供多种强大的编排方式:
串行编排:组件依次执行(
A -> B -> C
)。并行编排:多个组件并发执行
选择编排:根据条件灵活选择最适合的执行路径。
条件编排:通过业务条件判断流程方向
循环编排:支持组件的重复执行,满足循环逻辑需求。
异常处理:捕获并处理组件执行过程中的异常,保障流程可靠。
规则表达式的优势
分解复杂流程:将复杂业务流程拆分为独立、清晰的组件。
灵活组合与复用:实现组件的高效复用,降低开发成本。
动态调整顺序:支持运行时调整规则配置,快速适应业务变化。
直观可视化:结合工具实现业务流程的直观可视化配置,让规则管理更清晰。
通过声明式规则定义方式,流程编排更加灵活,逻辑更易维护,扩展能力显著增强,是处理复杂流程场景的强大工具。
04#
系统实现
04#
系统实现
通用组件
实现多个核心能力的组件,业务场景只需要编排组件即可。例如:
网络请求组件:通过配置请求地址、方法和参数解析,实现灵活调用。
数据库操作组件:统一封装增删改查能力,提升复用性。
活动规则组件:动态调整规则定义和执行逻辑。
组件示例
以网络请求组件为例,包含3部分:网络请求配置 、 固定网络请求框架 、自定义参数解析。
代码示例如下:
场景示例
通过流程编排实现了营销活动的配置和审批(见下图),减少了开发成本,同时提升了系统的扩展能力。
05#
总结
05#
总结
流程引擎的低代码开发模式适合复杂业务场景的逻辑处理,它可以把复杂的代码判断、分支逻辑抽离出来,使模块的功能更内聚、业务能力更抽象、复用率更高,降低了开发成本和代码维护成本。这种模式不只适用于复杂的C端处理流程,同时也可以让后台配置能力提效,以后还可以探索更多的应用场景。
未来规划
根据业务的发展需求,构建一个后端的流程引擎平台,拓展以下能力,更好的支撑业务的发展。
流程可视化管理:提升规则编排的可视化能力,能够直观、高效地管理复杂流程。
高效执行引擎:优化运行效率,降低资源消耗,显著提升规则执行速度。
状态追踪与回溯:增强节点状态留存和跟踪能力,为复杂流程提供全流程可追溯性。
智能化决策支持:引入自动化决策和动态调整功能,满足更多场景下的智能化需求。
| |
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...