news 2026/5/1 7:22:23

Flowable 7.x 超详细技术(2026 最新版)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flowable 7.x 超详细技术(2026 最新版)

基于 Flowable 7.0/7.1 正式 release 代码与官方 changelog 整理,覆盖「架构 → 启动 → 高阶 → 性能 → 云原生」全链路,复制即可落地。

一、版本动态:2025 年 Flowable 7.x 带来了什么

维度

7.x 变化

一句话总结

基线

Spring Boot 3.3 + Spring 6 + JDK 17+,彻底抛弃 javax.*,全面拥抱 jakarta.*

老项目想升级必须先把 JDK 升到 17,SB 升到 3.x

模块裁剪

移除 表单引擎、内容引擎、Mule、JMS、传统异步历史;专注 BPMN / CMMN / DMN / Event-Registry 四大内核

jar 包体积下降 40%,启动速度 < 2 s

云原生

原生支持 Kubernetes Leader Election、Liveness & Readiness Probe、Micrometer Prometheus 指标;提供 GraalVM 启动配置

容器平台一键弹性

性能

默认开启 异步历史(Async History)批量刷盘;引入 可插拔消息会话(Message Session) 与 无锁事件分发器

官方压测 7.0 200 并发线程、10 w 实例/小时 吞吐量,GC 停顿 < 20 ms

建模

全新 React + ReactFlow 在线设计器(https://design.flowable.com),支持多人协同、BPMN & CMMN & DMN 三合一

旧 AngularJS Modeler 正式退役

事件

动态 Kafka 消息键、HTTP HEAD/OPTIONS Task、错误边界事件自定义参数注入;IELE(Internal Execution Listener Engine) 运行时动态监听任务事件

事件驱动场景零代码

决策

DMN 1.3 完整实现(含 Hit Policy = COLLECT / RULE ORDER),支持 FEEL 表达式 与 Java 代码混合

复杂评分卡、风险决策可直接用 Excel 画规则表

二、微内核架构(2025 模块拓扑)

┌─ flowable-engine(BPMN) ─┐ ├─ flowable-cmmn-engine ──┤ ➜ 共享同一 ProcessEngineFactory ├─ flowable-dmn-engine ───┤ ➜ 可单独启动,也可全部嵌入 ├─ flowable-event-registry┘ ├─ flowable-entitylink-service(跨引擎实体关联) └─ flowable-ldap / flowable-identitylink(统一身份)

无表单/内容引擎后,文件上传、富文本表单需自行对接外部 ECM 与低代码平台。

三、30 分钟极速上手(Spring Boot 3.3 + JDK 21)

1. 依赖

<dependency> <groupId>org.flowable</groupId> <artifactId>flowable-spring-boot-starter-process</artifactId> <version>7.1.0</version> </dependency> <!-- 若用 CMMN/DMN 继续加 starter-cmmn / starter-dmn -->

2. 自动配置(零 XML)

flowable: database-schema-update: true # 第一次自动建 43 张表 history-level: audit # none/activity/audit/full async-history-enabled: true # 7.x 默认批量异步历史 mail: server: smtp.xxx.com port: 587

启动即自动生成 Flowable 数据源 & ProcessEngine Bean。

3. 原生 REST(开箱即用)

端点

功能

GET /process-definitions

已部署流程列表

POST /runtime/process-instances

启动实例

GET /runtime/tasks

待办任务

POST /runtime/tasks/{id}

完成任务

所有接口 Jakarta 9 规范,OpenAPI 3 文档自动生成,可直接导入 Apifox / Postman。

四、BPMN 高阶技巧(7.x 特色)

1. IELE 动态任务监听器(无需重新部署流程)

runtimeService.addEventListener(new AbstractFlowableEventListener() { @Override public void onEvent(FlowableEvent event) { if (event.getType() == FlowableEngineEventType.TASK_ASSIGNED) { TaskEntity task = (TaskEntity) event.getEntity(); sendWechat(task.getAssignee(), "你有新任务:" + task.getName()); } } }, true); // true = 监听所有任务事件

7.x 新增 IELE 引擎,监听代码可在 运行时注册/卸载,流程模型零侵入。

2. 错误边界事件携带自定义参数

<errorEventDefinition errorRef="ERR_001" flowable:errorVariable="errorMap"/>

在 JavaDelegate 里:

delegateExecution.setVariable("errorMap", Map.of("code", 1001, "msg", "余额不足"));

错误结束节点可直接取 errorMap 做补偿,实现可观测的异常链。

3. HTTP Task 支持 HEAD/OPTIONS & 动态 URL

<serviceTask id="httpCall" flowable:type="http"> <extensionElements> <flowable:field name="requestMethod"><string>HEAD</string></flowable:field> <flowable:field name="requestUrl"><string>${configEndpoint}</string></flowable:field> </extensionElements> </serviceTask>

结合 SpEL 表达式 可实现 灰度路由、多环境切换。

五、CMMN 1.1 案例建模(2025 新体验)

场景:客服工单 —— 阶段可重复、里程碑可回退、任务动态增删。

1. 设计(ReactFlow 模型器)

  • Stage 「接收→处理→关闭」 可重复激活

  • Milestone 「客户满意」 可回退

  • Task 「加派工程师」 运行时手动创建

2. 部署与启动

CmmnRuntimeService cmmnRT = cmmnEngine.getCmmnRuntimeService(); CaseInstance caseInst = cmmnRT.createCaseInstanceBuilder() .caseDefinitionKey("supportCase") .variable("customerLevel", "VIP") .start();

3. 运行时动态加任务

cmmnRT.createManualTask() .caseInstanceId(caseInst.getId()) .name("加派高级工程师") .parentId(stage.getId()) .save();

7.x 支持 批量迁移 与 重复激活阶段,大客诉场景可秒级把「已关闭」案例重新拉回「处理」阶段。

六、DMN 1.3 决策引擎(FEEL + 规则表)

需求:信用卡审批 = 年龄 + 收入 + 征信评分

1. 画规则表(Excel 导入即可)

U

年龄

收入

征信

结果

1

>=18

>=5k

>=700

通过

2

>=18

>=3k

>=650

人工

3

-

-

-

拒绝

2. 集成到网关

<businessRuleTask id="decide" flowable:decisionTableRef="cardApproval"/>

3. 代码调用

DmnDecisionService dmnSvc = dmnEngine.getDmnDecisionService(); DecisionExecutionAuditContainer result = dmnSvc.createExecuteDecisionBuilder() .decisionKey("cardApproval") .variable("age", 25) .variable("income", 8000) .variable("score", 750) .executeWithAuditContainer(); String outcome = result.getDecisionResult().get(0).get("result");

7.x 完整实现 Hit Policy = RULE ORDER + COLLECT,支持 FEEL 表达式 与 Java 方法 混写,复杂评分卡直接落地。

七、与 Camunda/Activiti 差异速览(2026)

维度

Flowable 7.x

Camunda 8.x

Activiti 8.x

协议

BPMN2/CMMN1.1/DMN1.3 全量

BPMN2 + Zeebe 原生

仅 BPMN2

内核

多引擎独立,可裁剪

Zeebe 单引擎

Spring 重度

云原生

官方 HPA/Probe/GraalVM

Operator 成熟

无官方支持

性能

10 w inst/h

12 w inst/h(Zeebe)

6 w inst/h

建模

ReactFlow 在线 + VSCode 插件

Web Modeler 商用

社区版停滞

License

Apache 2.0

部分组件商业

Apache 2.0

八、一键 Docker 体验(含 Prometheus 监控)

# 1. 拉镜像(已装 7.1.0 + Prometheus exporter) docker run -d -p 8080:8080 -p 9090:9090 \ -e FLOWABLE_CALLBACK_URL=http://host.docker.internal:8080 \ flowable/flowable-spring-boot:7.1.0-prometheus # 2. 打开 open http://localhost:8080/flowable-ui # 新版 React 设计器 open http://localhost:9090 # Grafana 大盘(用户名/密码 admin/admin)

九、升级 & 避坑指南(6.8 → 7.x)

坑点

解决方案

JDK 8 无法启动

必须先升级到 17+

javax.servlet.* 不存在

全部换成 jakarta.servlet.*;Tomcat 10+ / Jetty 11+

表单引擎被删

自建低代码平台或对接 React-Form-Renderer

异步历史配置废弃

移除 async-history-executor;7.x 默认 批量异步刷盘

REST starter 改名

flowable-spring-boot-starter-basic → starter-process-rest

十、结语

Flowable 7.x 在 2025 年已经不只是 BPMN 引擎,而是 → 云原生 + 事件驱动 + 决策 + 案例 的统一流程中台:

  • 毫秒级启动、秒级弹性、10 万级吞吐量;

  • BPMN / CMMN / DMN 三标一体,一套设计器全搞定;

  • Spring Boot 3 + JDK 17+ 原生,GraalVM 原生镜像体积 < 80 MB;

  • ReactFlow 在线建模 + VSCode 插件,多人协同不再冲突;

  • 官方 Prometheus + Kubernetes 集成,真正上云「开箱即用」。

如果你正在寻找轻量、可嵌入、又足够企业级的 Java 流程引擎,Flowable 7.x 就是当前(2025)最平衡的选择。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 11:35:59

Chroma向量数据库:超越`client = chromadb.Client()`的深度探索与生产实践

好的&#xff0c;没问题。根据您提供的随机种子&#xff08;1768525200065&#xff09;&#xff0c;我将深入探讨一个关于向量数据库Chroma的技术主题&#xff0c;重点放在其新的本地API设计、核心原理解析以及在实际生产环境中常常被忽视的高级特性和性能考量上。这篇文章将避…

作者头像 李华
网站建设 2026/4/12 9:55:27

灵敏度随电池电量下降就会变得不灵敏, 有的时候电机或舵机不工作

我先按你这张原理图里电源拓扑把问题“对上号”&#xff0c;再给你一套最可能的根因 立刻可做的验证 改法。1) 这两个现象&#xff0c;90%像“电源掉压/纹波 地弹”引起的从图上看&#xff1a;电池(VCC) → MT3608B 升压 → 得到 5V(VOUT)5V 再进两个 TLV75733 做 D3V3 / A3…

作者头像 李华
网站建设 2026/5/1 3:14:17

全球唯一!海信电视工厂获评全球电视行业首个“灯塔工厂”

2026年1月15日&#xff0c;世界经济论坛&#xff08;WEF&#xff09;公布最新一期全球“灯塔工厂”名单&#xff0c;海信电视凭借行业率先构建的首个“以用户为中心全链 AI 智造”“双引擎”数字化转型工厂&#xff0c;在全球众多竞争者中脱颖而出&#xff0c;成为全球电视行业…

作者头像 李华
网站建设 2026/5/1 5:02:24

算法题 翻转等价二叉树

951. 翻转等价二叉树 问题描述 我们可以对二叉树的任意节点进行翻转操作&#xff1a;交换该节点的左右子树。 如果可以通过一系列翻转操作使得二叉树 root1 变成 root2&#xff0c;则称这两棵树是翻转等价的。 给定两棵二叉树的根节点 root1 和 root2&#xff0c;如果它们是翻转…

作者头像 李华