smart-flow v1.1.3 发布 优化使用体验&适配 Nacos

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.3 版本更新主要是一些使用体验上的优化,同时新增了nacos集成。

具体内容特性如下:

 

更快捷的流程中断方式

1.1.3以前版本,必须通过上下文来中断流程,实际使用起来可能不太方便。基于此新增工具类静态方法,可直接中断流程。

EngineContextHelper.broken(); // 中断当前流程/子流程
EngineContextHelper.brokenAll(); // 中断整个流程

 

traceReporter优化

本次更新中,将原本的traceReporter拆分为了 traceCollector和新的traceReporter。其中collector负责收集tracereporter负责将trace上报远端。

// 配置reporter
HttpTraceReporter reporter = new HttpTraceReporter();
reporter.setServerAddress("http://localhost:8099/");
reporter.setTimeout(4000L);
reporter.setHeaders(new HashMap<>());

reporter.getHeaders().put("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)");
reporter.init();

// 配置收集器
DefaultTraceCollector collector = new DefaultTraceCollector();
collector.setRadio(0.1); // 设置采样率
collector.addReporter(reporter); // 添加traceReporter
collector.start();  // 启动收集器

 

Spring使用优化

  • 占位符支持

为组件标签设置属性时,支持使用${}占位符,占位符的解析与属性设置将交由spring进行处理。

<flow:component name="${engine.name}" execute="itemComponent" 
   degradable="${itemComponent.degradable:false}"/>
  • 自动bean装载

spring扩展包中部分类将会自动注册到spring容器中,不再需要手动引入。

 

Springboot使用优化

主要对springboot环境下,部分bean的组装进行了优化,并新增了链路上报的组装功能,详情见集成springboot

 

Nacos集成

从Nacos远程拉取引擎配置解析,并支持配置变更监听,根据变更后的配置重新生成引擎实例。

<dependency>
    <groupId>org.smartboot.flow</groupId>
    <artifactId>smart-flow-integration-nacos</artifactId>
    <version>${lastest.version}</version>
</dependency>

更多请阅读:集成nacos

 

其他更新

  • 【优化】移除方法DefaultEngineManager#getDefaultEngineManager
  • 【新增】添加引擎获取方法 EngineManager#getEngine
  • 【优化】其他代码优化


 

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.3</version>
</dependency>
  • smart-flow-spring-extension spring 扩展
<dependency>
      <groupId>org.smartboot.flow</groupId>
      <artifactId>smart-flow-spring-extension</artifactId>
      <version>1.1.3</version>
  </dependency>
  • smart-flow-manager 管理功能包
<dependency>
      <groupId>org.smartboot.flow</groupId>
      <artifactId>smart-flow-manager</artifactId>
      <version>1.1.3</version>
  </dependency>

3.3 使用

点击查看快速接入

3.4、示例地址

demo 工程地址

管理控制台体验地址

猜你喜欢

转载自www.oschina.net/news/253723/smart-flow-1-1-3-released