1、smart-flow 简介
smart-flow 是一个轻量、灵活的业务流程编排框架,支持业务流程中常见的条件分支控制、子流程、业务组件异步和降级等功能。同时 smart-flow 也是一款具备可观测性的流程编排框架,流程结构拓扑、执行路径跟踪、链路分析等功能能帮助您洞察整个业务流程和执行。
smartboot 开源组织,一个容易被误认为是在 “重复造轮子” 的低调组织。曾获得 2020 年度 OSC 中国开源项目「优秀 Gitee 组织 」荣誉。
该组织内的明星项目包括:
smart-socket
历时 5 年精炼出 2 千多行代码,轻松实现百万级长连接的 AIO 通信框架。smart-http
基于 smart-socket 实现的 HTTP/1.1 web 服务。smart-servlet
基于 smart-http 实现的 Servlet 3.1 容器服务。smart-mqtt
基于 smart-socket 实现的 MQTT 3.1.1/5.0 Broker&Client 服务。smart-flow
一款具备可观测性的轻量级业务编排框架。组织地址:https://smartboot.tech/
代码仓库:https://gitee.com/smartboot
2、 版本更新
v1.1.4 版本更新主要是一些使用体验上的优化。
具体内容特性如下:
管理后台新增docker启动方式
docker run -p 8076:8076 smartboot/smart-flow-admin
新增dependsAll标准属性
新增dependsAll标准属性,开启后在组件执行前将等待所有前置异步组件完成执行。属性开启方式详见:标准属性
<component name="final_step" execute="statisticComponent" dependsAll="true"/>
XML编排文件快速解析
提供ParseHelper
可以快速解析获取引擎对象,ParseHelper
支持多种路径混合使用。
- classpath类路径
- 文件绝对路径
- 文件相对路径
同时ParseHelper
也支持对解析器进行自定义设置。
FlowEngine<Object, Object> testEngine = ParseHelper
.classpath("/parse/flow-example-simple-with-resolver.xml")
.addAbsolute("/Users/xxx/xxx.xml")
.withResolver(new DefaultPlaceholderAttributeValueResolver())
.get("testEngine");
3、如何使用 smart-flow
3.1 源码
3.2 Maven 依赖
- smart-flow-core 核心包,可单独使用
<dependency>
<groupId>org.smartboot.flow</groupId>
<artifactId>smart-flow-core</artifactId>
<version>1.1.4</version>
</dependency>
- smart-flow-spring-extension spring 扩展
<dependency>
<groupId>org.smartboot.flow</groupId>
<artifactId>smart-flow-spring-extension</artifactId>
<version>1.1.4</version>
</dependency>
- smart-flow-manager 管理功能包
<dependency>
<groupId>org.smartboot.flow</groupId>
<artifactId>smart-flow-manager</artifactId>
<version>1.1.4</version>
</dependency>