文章目录
一、写在前面
就不做过多介绍了。
官网: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主要还是以流程编排
为主。