持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
activiti简介
Activiti是领先的轻量级、以java为中心的开源BPMN引擎,支持现实世界的流程自动化需求。Activiti Cloud现在是新一代业务自动化平台,提供一组旨在在分布式基础架构上运行的云原生构建块。
单体架构
“单体架构”在整个软件架构演进的历史进程里,是出现时间最早、应用范围最广、使用人数最多、统治历史最长的一种架构风格,但“单体”这个名称,却是在微服务开始流行之后才“事后追认”所形成的概念。
优点:易于开发、易于测试、易于部署、进程内调用、单数据库的强一致保证。
不足:系统逐渐庞大导致的启动缓慢,系统中一块代码出问题可能会影响到整个系统,等。
SOA架构
单机架构在开发到一定阶段之后,功能和功能之间共用同样的资源,如CPU,磁盘,内存等。一个功能模块出问题,可能会影响到其它的业务功能。代码放在同一个项目中,多人开发提交到同一个仓库中,文件的修改冲突也会越来越多。所以,需要项目进行模块的划分,让重要的模块独享资源,不那么重要的模块可以适当放一起。
SOA架构就是将各个模块拆分出来,互不干扰,模块与模块之间不会知道对方的存在,这是和微服务不同的一点。微服务有注册中心,模块之间的通讯可以通过注册中心获取需要通讯的服务,而SOA则不同,模块之间没有耦合,互不干扰,没法直接通讯。那么如果真有业务需要调用两个服务怎么办呢?SOA中有个ESB(企业服务总线)的概念,如下图:
ESB将服务组合在一起,通过业务流程编排,形成一个个独立的业务。开发者需要做的是通过bpmn的建模,将业务流程以工作流的形式发布到流程引擎中。activiti就是这样一个提供了一系列业务流程编排功能的框架。