本文主要介绍netflixconductor的基本概念和主要运行机制。
一简介
netflixconductor是基于JAVA语言编写的开源流程引擎,用于架构基于微服务的流程。它具备如下特性:
允许创建复杂的业务流程,流程中每个独立的任务都是由一个微服务所实现。基于JSONDSL创建工作流,对任务的执行进行编排。工作流在执行的过程中可见、可追溯。提供暂停、恢复、重启等多种控制模型。提供一种简单的方式来最大限度重用微服务。拥有扩展到百万流程并发运行的服务能力。通过队列服务实现客户端与服务端的分离。支持HTTP或其他RPC协议进行数据传送
二基本概念
Task
Task是最小执行单元,承载了一段执行逻辑,如发送HTTP请求等。
SystemTask:被conductor服务执行,这些任务的执行与引擎在同一个JVM中。
WorkerTask:被worker服务执行,执行与引擎隔离开,worker通过队列获取任务后,执行并更新结果状态到引擎。Worker的实现是跨语言的,其使用Http协议与Server通信。
conductor提供了若干内置SystemTask:
功能性Task:
HTTP:发送