LiteFlow:国产流程编排引擎体验

发布于:2025-09-04 ⋅ 阅读:(24) ⋅ 点赞:(0)

一、写在前面

就不做过多介绍了。
官网:https://liteflow.cc/

二、使用

1、Springboot集成

(1)引包

<dependency>
    <groupId>com.yomahub</groupId>
    <artifactId>liteflow-spring-boot-starter</artifactId>
    <version>2.15.0</version>
</dependency>

引入的jar包还不少呢:
在这里插入图片描述
(2)按照官网的demo来一套,发现确实挺好用:
文档:https://liteflow.cc/pages/9bf6be/#%E4%BE%9D%E8%B5%96

2、组件

(1)继承式组件的作用就是,提供了几个内置的,为流程编排提供了执行器、条件器、循环器等等。
文档:https://liteflow.cc/pages/8486fb/

(2)声明式组件,更灵活。感觉方法级别式声明更适合日常开发。
文档:https://liteflow.cc/pages/46f0fa/

3、表达式

文档:https://liteflow.cc/pages/16eca9/

表达式,就是进行流程编排了。

4、上下文

文档:https://liteflow.cc/pages/74b4bf/

在执行器执行流程时会分配数据上下文实例给这个请求。不同请求的数据上下文实例是完全隔离的。里面存放着此请求所有的用户数据。不同的组件之间是不传递参数的,所有的数据交互都是通过这个数据上下文来实现的。

使用的时候,最好是将上下文进行自定义:

OrderContext orderContext = new OrderContext();
orderContext.setOrderNo("SO11223344");
// 上下文已经初始化好参数了,就可以省略流程入参
LiteflowResponse response = flowExecutor.execute2Resp("chain1", null, orderContext);

上下支持将整个取出进行处理,也可以单独对类的字段进行处理。

5、执行器

文档:https://liteflow.cc/pages/90b2a5/

执行器是一个流程的触发点,你可以在代码的任意地方用执行器进行执行流程

需要注意执行器的出参、入参、上下文

流程多的话(几万+),需要设置保活策略。

6、脚本组件

需要经常更新+热部署的代码部分,可以考虑脚本组件。

7、规则配置源

文档:https://liteflow.cc/pages/51ddd5/#%E8%A7%84%E5%88%99%E6%96%87%E4%BB%B6

可以将规则配置在文件、数据库、配置中心等等很多地方,也支持热更新。

8、元数据管理

文档:https://liteflow.cc/pages/7cb165/

在LiteFlow框架中,最重要的两个概念就是规则以及组件。
框架提供了一个元数据管理器LiteflowMetaOperator用来管理这两大元素。

LiteFlow原生支持的zookeeper,etcd,nacos,apollo等插件,不需要你做任何事,只要规则更改之后,会自动热平滑刷新。
本地文件也支持热更新,需要配置本地文件监听。
sql,redis也会热更新,因为是轮训,所以会有延时。

9、异步中的线程池

文档:https://liteflow.cc/pages/3a3b69/

从2.13.0开始,框架中的线程池模型设计和之前的版本有较大的差异性,所以此章只适用于2.13.0之后的版本。

线程池分为流程级别的、组件异步级别的。
组件异步还分表达式级别、Chain级别。

JDK为21及以上时,默认使用虚拟线程。

10、动态构造

文档:https://liteflow.cc/pages/9aa85a/

Node、表达式、Chain都可以动态构造。

11、决策路由

文档:https://liteflow.cc/pages/ec1ac4/

感觉是没啥大用,还挺复杂的。

12、生命周期

文档:https://liteflow.cc/pages/ef098d/#%E8%A7%84%E5%88%99%E6%9E%84%E9%80%A0%E5%89%8D%E5%90%8E

13、其他

三、总结

业务复杂可以考虑引入,但是大部分项目应该还是不必须的。

LiteFlow主要还是以流程编排为主。


网站公告

今日签到

点亮在社区的每一天
去签到