常见工作流框架:微服务编排引擎
工作流框架还是比较多的,按照语言分类的话,有
Java: jBPM、Activiti、SWF
PHP: Tpflow、PHPworkflow
Go: Cadence(Cadence由Uber开发并开源,Maxim Fateev是Cadence的主架构师)、Temporal(Maxim Fateev为了推广Workflow编排引擎的商业化,另立门户创建了Temporal)、Fastflow
工单系统调研:https://zhihu.kdocs.cn/l/ccLQYQzyjX9L?from_wecom=1#
特点 | 缺点 | 可视化界面 | 语言 | 开源 | |
---|---|---|---|---|---|
jBPM |
|
| 无 | java | |
Activiti |
|
| 无 | java | 开源,star: 9.3k,近2天有更新 |
liteflow |
| 图形化界面 | java | 开源,star: 1.7k,近1周有更新 | |
n8n(工作流) docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n docker.n8n.io/n8nio/n8n |
|
| 图形化界面,关联节点,事件触发 | js | 开源,star: 29.1k,近1天有更新 |
Temporal Cadence |
|
| 图形化界面,可以清楚的知道上下文 | golang | 开源,star: 6.8k,近1天有更新 |
Fastflow |
| 无 | golang | 开源,star: 108,近三月有更新 | |
flowable |
|
| java | 开源版本维护滞留 | |
Camunda |
|
| |||
公司内部的工作流编排相关使用分析 | |||||
需求场景 | 工作流选型 | 产品特点 | |||
Airbyte 数据同步引擎 | Temporal |
| |||
云效部署、流水线发布
| camunda (Activiti 5 衍生) | BPMN2.0(图形编排能力)
| |||
zelus 定时任务调度平台
| 依赖的是k8s 的组件 + argo-workflow |
| |||
研发效能工具
| activiti | 可以绘制流程图 | |||
RFC - 流程编排 - bpmn-js(LCDP)前端部分的流程编排方案
| bpmn-js
| 有不错的扩展性和用户体验
| |||
理解策略识别调度服务 | dag 调度策略(有向无环图) 自研 |
| |||
星河 流程编排 SDK(StarRiver)
|
如何选型
针对我们自身的开发效率、支撑能力、稳定性
-
多异步事件
-
服务可靠性低
-
流程长繁杂
-
复杂状态
工作流通常适用于,有状态的、异步、长时间执行等特性的业务场景,比较典型的场景包括
-
视频、音频、图片处理工作流
-
订单、审批流程
-
数据处理流水线
-
自动化运维