01-认识Activiti

简介: 工作流指如请假、报销等需审批的业务流程,通过流程引擎实现可视化与自动化。它支持单/多节点审批,广泛应用于CRM、TMS、WMS等系统。主流技术包括BPMN、Activiti和Flowable,推动了泛微、金蝶等企业的发展。

1 什么是工作流
类似如请假、离职、出差、报销这种有审批流程的业务,我们都可以称之为工作流(也叫流程引擎),它可以帮助用户实现一个审批流程的可视化,借助于工作流引擎可以搭建客户关系管理系统(CRM)、运输管理系统(TMS)、仓储管理系统(WMS)、财务费用系统等多种复杂业务系统。其实现基本形如下图:
请假流程示例:

出差流程示例:

为了满足这种复杂的单节点审批、多节点审批[一个人审批通过即可、多人必须同时审批通过]业务场景,我们不能借助于传统关系型数据库实现,更无法简单的借助于状态机就实现,此时工作流引擎应运而生。
工作流引擎从笔者最早的BPMN发展到Activity,再到国内自主研发的FlowAble、NatureFlow等,随着技术的更新换代,也衍生出:泛微、金蝶、用友等一大批优秀企业。
2 主流技术选型
bpmn:(Business Process Model And Notation),最为传统的工作流典范
activiti:以java为中心的开源BPMN引擎,支持现实世界的流程自动化需求
flowable: 使用 Java 编写的轻量级业务流程引擎,是activiti核心开发人员离职后二次开发出的框架。
3 Activiti流程概述image.pngimage.png
image.png

相关文章
|
1天前
|
jenkins 持续交付 调度
项目《神领物流》
本项目为自研物流系统,基于微服务架构实现智能调度与管控,涵盖用户、快递员、司机多端应用。采用GitFlow管理代码,通过Jenkins实现持续集成,提交后自动构建,保障开发效率与系统稳定,类似顺丰速运模式,面向C端提供高效快递服务。(239字)
|
1天前
|
缓存 数据建模 文件存储
EFC&CTO:缓存引发数据不一致问题排查与深度解析
EFC是NAS自研分布式文件系统客户端,近期升级支持多客户端分布式缓存,兼容NAS、CPFS、OSS。因未适配CTO测试,发版时出现data mismatch。排查发现非单纯缓存读旧数据问题,通过NFS挂载验证确认文件系统数据被破坏,挑战超出预期。
|
1天前
|
设计模式 Java 程序员
推荐书籍
推荐多本Java经典书籍:《Head First Java》适合入门,《Java核心技术》深入巩固基础,《Java编程思想》整合设计模式,适合进阶。并发方面有《Java并发编程之美》等,JVM推荐《深入理解Java虚拟机》与《实战JVM》。体系全面,适合不同阶段学习。
|
1天前
|
负载均衡 算法 Java
微服务篇
SpringBoot核心原理是自动装配,通过@SpringBootApplication注解实现配置类、组件扫描与自动配置。其启动流程包括环境初始化、上下文创建与自动化配置。常用起步依赖如web、redis等;支持properties、YAML等配置文件,后加载的覆盖先加载的。项目通过Feign、Ribbon实现服务通信与负载均衡,使用Nacos做注册与配置中心,Sentinel或Hystrix实现限流熔断,Gateway实现网关限流与CORS跨域控制,结合Spring Cloud五大组件构建微服务架构。
|
1天前
|
消息中间件 存储 缓存
MQ篇
本项目采用RabbitMQ、Kafka和EMQ实现异步通信与数据采集。RabbitMQ用于服务解耦、流量削峰,支持多种消息模式与高可用集群;Kafka处理高吞吐用户行为数据,保障实时推荐与数据同步;EMQ基于MQTT协议实现物联网设备与服务器间可靠通信,支持QoS分级与延迟发布,确保消息不丢不重。三者协同提升系统性能与稳定性。
|
1天前
|
Arthas 监控 Java
jvm相关
本节介绍Arthas常用命令:实时监控系统数据(dashboard)、查看JVM线程、内存、系统属性(sysprop)、环境变量(sysenv)、性能计数器(perfcounter)、日志配置(logger)及静态属性(getstatic)等,支持动态修改与诊断,助力Java应用排查问题。
|
1天前
|
运维 NoSQL 测试技术
Redis:内存陡增100%深度复盘
事故源于大KEY在业务高峰时占满带宽,导致Redis内存使用率骤升至100%。虽有淘汰策略,但缓冲区(输入/输出)激增吞噬内存,主线程阻塞,命令无法处理,最终引发GET/SET超时崩溃。根本原因为大KEY与高流量叠加,触发缓冲区溢出,超出实例承载极限。
|
1天前
|
fastjson Java Kotlin
FastJson:大面积故障规避案例
不到两年开发中,已三次踩坑FastJson,版本差异大,使用需谨慎。项目为Kotlin/Java/Groovy混编:Java生态完善;Kotlin语法简洁、支持协程,但工具链兼容差;Groovy用得少,依赖模型辅助。曾因反序列化异常致预发大量报错,排查发现为FastJson隐患所致,影响广泛,令人后怕。
|
1天前
|
Ubuntu Java Linux
Docker
本文介绍Docker基础操作,涵盖镜像打包、容器管理及Dockerfile编写。通过示例演示如何基于Ubuntu镜像构建Java运行环境,打包Spring Boot应用(linuxDemo.jar),并实现容器化部署与端口映射,最终验证服务运行状态,适合初学者快速掌握Docker核心技能。(239字)
|
1天前
|
数据可视化 数据挖掘 BI
性能优化专题
两幅图像展示了数据可视化图表,包含柱状图与折线图的组合,呈现清晰的趋势分析与对比数据,适用于业务报表、数据分析等场景,助力直观理解关键指标变化。