Mistral 架构

基本概念

在了解 Mistral 架构之前,需要理解以下一些基本概念

  • 工作流 - 由描述工作流执行期间应采取的确切步骤的至少一个任务组成。

  • 任务 - 在工作流定义中执行的活动。

  • 动作 - 当触发特定任务时执行的工作。

Mistral 组件

Mistral 由以下主要组件组成

  • API 服务器

  • 引擎

  • 任务执行器

  • 调度器

  • 通知器

  • 持久化存储

下图说明了 Mistral 的架构

../_images/mistral_architecture.png

API 服务器

API 服务器公开 REST API,用于操作和监控工作流执行。

引擎

引擎从工作流队列中获取工作流。它处理工作流执行的控制和数据流。它还计算哪些任务已准备好并将它们放入任务队列。它在任务之间传递数据,处理条件转换等。

任务执行器

任务执行器执行任务动作。它从队列中获取任务,运行动作,并将结果发送回引擎。

调度器

调度器存储和执行延迟调用。它是重要的 Mistral 组件,因为它与引擎和执行器交互。它还会在事件(例如,定期 cron 事件)上触发工作流

通知器

在工作流和任务执行时,会在某些检查点(例如,启动工作流执行或完成工作流执行时)发出事件。通知器将事件路由到配置的发布者。通知器可以配置为在工作流引擎上本地执行,也可以像远程执行器服务器一样作为服务器运行并监听事件。将通知器作为远程服务器运行可确保工作流引擎快速取消阻塞并恢复工作。事件发布者是自定义插件,可以将事件写入 HTTP 上的 webhook、日志文件中的条目、Zaqar 中的消息等。

持久化存储

持久化存储存储工作流定义、当前执行状态和过去的执行结果。