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
负责收集trace
,reporter
负责将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、示例地址

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
PowerJob v4.3.4 已经发布,分布式任务调度中间件
PowerJob v4.3.4 已经发布,分布式任务调度中间件 此版本更新内容包括: PowerJob 官方处理器 点击查看使用教程 Features 新发布:万能验证处理器,帮助新用户快速熟悉&了解&测试 PowerJob 相关功能:tech.powerjob.official.processors.impl.VerificationProcessor 详情查看:https://gitee.com/KFCFans/PowerJob/releases/v4.3.4
- 下一篇
揭秘华为云GaussDB(for Redis)丨大key治理
本文分享自华为云社区《华为云GaussDB(for Redis)揭秘第31期:大key治理》,作者: 高斯Redis官方博客。 从DBA的视角看,大Key无疑是引起Redis线上问题的常见原因。为了解决大Key隐患,业务首先要遵守合理的开发规范,减少大Key的产生和访问依赖。但有时大Key是在程序运行过程中悄悄产生的,让人防不胜防。因此,一款可随时在线诊断,且能主动预警,防患于未然的Redis服务产品显得尤为重要。 GaussDB(for Redis):支持大Key在线诊断 GaussDB(for Redis)采用计算、存储分离的高可靠架构,每个计算节点上都部署有后台任务。GaussDB(for Redis)通过后台任务持续检测分析存储池中的大key情况,用户执行命令时直接取结果,不会影响线上业务,跟业界阻塞式全量扫描方式相比,更安全。 用户执行bigkeys命令后,将直接从节点上获取“答案”,不用全库扫描引起不必要的性能影响。 此外,GaussDB(for Redis)支持用户自定义大key标准,比如大于1MB的string、大于10000个元素的hash类型等。该功能一经推出,收获...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19