cover_image

会员后台基于LiteFlow的低代码实践

会员技术团队 爱奇艺技术产品团队
2024年12月05日 05:30

01#

 背景 




随着会员业务的发展,基于商品、订单、权益的中台体系逐渐成形,可以快速支持业务的创新探索,如果业务模式可行,功能就会落地到配置后台。虽然业务模式多样化,但业务的配置后台都需要调用中台通用的配置接口,比如:商品、价格、库存、活动等配置,在规则的组装上就出现了重复定制开发的问题。

为了解决这类问题,我们尝试了从传统瀑布流开发模式转变到流程引擎模式的探索,本文分享一下实践经验,希望能够给大家带来一些启发。


02#

 方案设计 




通用接口设计为组件,通过流水线的方式进行组装,每个业务配置功能不需要开发,可参考工作台模式(见下图),通过“工作台、组件、规则”的结合,体现了高度解耦、灵活编排的设计理念。这种设计不仅简化了复杂业务逻辑的实现,还赋予系统很好的扩展性和维护性,是面向复杂场景的架构选择。


图片


工作台

工人工作的工作台

  • 统一上下文环境:工作台如同一个全局的数据枢纽,为整个流程提供统一的上下文支持。

  • 仓库功能:它存储着组件所需的输入参数和中间产物,确保资源高效流转。

  • 双向数据交换:组件可以自由从工作台中汲取所需资源,同时也将处理结果回传给工作台。


组件

在不同位置上工作的工人

  • 职责明确:每个组件专注于特定的业务逻辑,是业务功能的执行者。

  • 高内聚低耦合:组件之间相互独立,不直接交互,如同各司其职的工人保持适当距离。

  • 灵活调度:组件通过工作台共享资源,自由调度所需数据,专注完成自己的任务。


规则

灵活高效的安排每个工人的座位

  • 简约配置:规则通过简单的配置定义组件的执行顺序,赋予业务流程极高的可读性和灵活性。

  • 动态调整:规则支持运行时灵活调整组件的编排,如同指挥家挥动指挥棒随时改变节奏。

  • 快速扩展:无论是新增、替换还是移除组件,都可以即时完成,适应变化多端的业务需求。


03#

 技术架构 



在众多的流程引擎中,选择了国产开源框架LiteFlow,该框架轻量、配置简单、易上手、文档完善、功能丰富、试错成本低,符合我们的需求。


LiteFlow架构图

图片


LiteFlow功能介绍

规则表达式

规则表达式(EL表达式)是LiteFlow框架中定义组件执行流程的核心,它采用简洁的DSL语法,通过字符串形式定义规则,提供多种强大的编排方式:

  • 串行编排:组件依次执行(A -> B -> C)。

  • 并行编排:多个组件并发执行

  • 选择编排:根据条件灵活选择最适合的执行路径。

  • 条件编排:通过业务条件判断流程方向

  • 循环编排:支持组件的重复执行,满足循环逻辑需求。

  • 异常处理:捕获并处理组件执行过程中的异常,保障流程可靠。


规则表达式的优势

  • 分解复杂流程:将复杂业务流程拆分为独立、清晰的组件。

  • 灵活组合与复用:实现组件的高效复用,降低开发成本。

  • 动态调整顺序:支持运行时调整规则配置,快速适应业务变化。

  • 直观可视化:结合工具实现业务流程的直观可视化配置,让规则管理更清晰。

通过声明式规则定义方式,流程编排更加灵活,逻辑更易维护,扩展能力显著增强,是处理复杂流程场景的强大工具。

图片


04#

 系统实现  




通用组件

实现多个核心能力的组件,业务场景只需要编排组件即可。例如:

  • 网络请求组件:通过配置请求地址、方法和参数解析,实现灵活调用。

  • 数据库操作组件:统一封装增删改查能力,提升复用性。

  • 活动规则组件:动态调整规则定义和执行逻辑。


组件示例

以网络请求组件为例,包含3部分:网络请求配置 、 固定网络请求框架 、自定义参数解析。


图片


代码示例如下:

图片

图片

图片


场景示例

通过流程编排实现了营销活动的配置和审批(见下图),减少了开发成本,同时提升了系统的扩展能力。

图片


05#

 总结 



流程引擎的低代码开发模式适合复杂业务场景的逻辑处理,它可以把复杂的代码判断、分支逻辑抽离出来,使模块的功能更内聚、业务能力更抽象、复用率更高,降低了开发成本和代码维护成本。这种模式不只适用于复杂的C端处理流程,同时也可以让后台配置能力提效,以后还可以探索更多的应用场景。


未来规划

根据业务的发展需求,构建一个后端的流程引擎平台,拓展以下能力,更好的支撑业务的发展。

  • 流程可视化管理:提升规则编排的可视化能力,能够直观、高效地管理复杂流程。

  • 高效执行引擎:优化运行效率,降低资源消耗,显著提升规则执行速度。

  • 状态追踪与回溯:增强节点状态留存和跟踪能力,为复杂流程提供全流程可追溯性。

  • 智能化决策支持:引入自动化决策和动态调整功能,满足更多场景下的智能化需求。

图片

也许你还想看
会员业务出口网关的设计与实现
Prometheus监控指标查询性能调优
组件化设计在会员业务的应用和实践


AI | 大数据
大前端 | 大后端 | 播放

2024技术年货 · 目录
上一篇QECon主题分享 | 价值交付的进阶探索与实践之道下一篇TOP 100Summit 主题分享 | AI助力爱奇艺项目管理实践
继续滑动看下一个
爱奇艺技术产品团队
向上滑动看下一个