Kestra:高性能、基于 Java 的编排平台

news/2025/2/19 16:48:28/

Kestra 是一个基于 Java 构建的事件驱动的编排和调度平台,它利用 YAML 进行工作流定义(您可以将其视为工作流的 Terraform)。

Kestra 可以简化计划和事件驱动的工作流程。通过将基础设施即代码最佳实践引入数据、流程和微服务编排,您可以构建可靠的工作流程并充满信心地管理它们。

只需几行代码,您就可以直接从 UI创建流程。借助用于定义编排逻辑的声明式 YAML 接口,业务涉众可以参与工作流创建过程。

大多数编排器都是用 Python 编写的,但我们选择 Java 是因为它的高性能和强大的生态系统来创建高可用和容错的编排器。该架构采用微服务方法专为大型部署而设计,其中每个组件都可以独立部署和扩展。对于小型部署,可以使用独立模式。

Kestra 的通信是异步的并且基于排队机制。

它利用 Micronaut 框架并提供两个运行器:

  • 一个使用数据库(JDBC)作为消息队列和资源存储,
  • 另一个使用 Kafka 作为消息队列和 Elasticsearch 作为资源存储。

该平台是完全可扩展的并且基于插件,为各种工作流任务、触发器和数据存储选项提供了丰富的插件集。

关键概念

  1. Flow是 Kestra 的主要组成部分。它是您的任务和编排逻辑的容器。
  2. Namespace用于提供逻辑隔离,例如分离开发和生产环境。命名空间就像文件系统上的文件夹 - 它们将流组织成逻辑类别,并且可以嵌套以提供层次结构。
  3. Tasks是流程中的原子操作。默认情况下,列表中的所有任务将按顺序执行,并可使用其他自定义选项并行运行任务或在需要时允许特定任务失败。
  4. Triggers定义流程何时运行。在 Kestra 中,流是根据事件触发的。此类事件的示例包括:
    • 定期的时间表 
    • API  调用(Webhook触发器)
    • 从UI临时执行 
    • 流触发器-可以使用流触发器或子流从其他流触发流,从而实现高度模块化的工作流。
    • 自定义事件,包括新文件到达(文件检测事件)、消息总线中的新消息、查询完成等。
  • Inputs允许您将运行时特定的变量传递给流程。它们是强类型的,并允许附加验证规则。

    Kestra 中的大多数任务都可以作为插件使用,但核心库中提供了许多类型的任务,包括支持各种编程语言(例如 Python、Node、Bash)的 ao 脚本任务以及编排打包到 Docker 容器中的业务逻辑的能力图片。

    丰富的编排能力
    Kestra 提供了各种任务来处理简单和复杂的业务逻辑,包括:

    • 子流
    • 重试
    • 暂停
    • 错误处理
    • 条件分支
    • 动态任务
    • 顺序任务和并行任务
    • 通过将标志设置disabled为,在需要时跳过任务或触发器true。
    • 配置任务、流程和触发器之间的依赖关系
    • 先进的调度和触发条件
    • 回填
    • 蓝图
    • 通过向任何组件添加 Markdown 描述来记录您的流程、任务和触发器
    • 添加标签以向流程添加其他元数据,

    可以直接从 UI 编写工作流程。编写工作流程时,UI 提供:

    • 自动完成
    • 语法验证
    • 嵌入式插件文档
    • 作为蓝图提供的示例流程
    • 拓扑视图(有向无环图中的依赖关系视图)会在您修改和添加新任务时实时更新。

https://www.jdon.com/69023.html


http://www.ppmy.cn/news/1152699.html

相关文章

CentOS 挂载新磁盘以及磁盘扩容操作教程

1.搭载新加磁盘 # 查看磁盘 fdisk -l #新盘(/dev/sdb)创建分区 #虚拟机 fdisk /dev/sdb #阿里云 fdisk /dev/vdb #创建/dev/sdb1为新的PV(物理卷) 【创建物理卷命令】 #虚拟机 pvcreate /dev/sdb1 #阿里云 pvcreate /dev/vdb1 查…

AB实验--科学增长

涉及的内容: AB实验的前置知识 AB实验的架构 AB实验的创建 AB实验的分析 AB实验的展示 AB实验的监控 AB扩展---指标监控 AB扩展---指标异动 AB扩展---异动分析 AB实验参考书籍 1.什么是AB AB 测试(也称为拆分测试)是一种统计方法&a…

论文阅读之《Learn to see in the dark》

Learning to See in the Dark-CVPR2018 Chen ChenUIUC(伊利诺伊大学厄巴纳-香槟分校) Qifeng Chen, Jia Xu, Vladlen Koltun Intel Labs(英特尔研究院) 文章链接:https://arxiv.org/pdf/1805.01934.pdfhttps://arxiv.org/pdf/1805.01934.p…

Java 操作 Excel:生成数据、设置单元格样式、设置数据有效性(hutool)

必读信息 该篇文章,主要通过 Java 代码对 Excel 文件的常用操作,包括:生成表格、修改单元格样式、设置数据有效性。 该篇文章,在官网文献下增加个人的看法和理解,如文中有出现不符、错误或需要补充的地方&#xff0c…

每日一题 136. 只出现一次的数字(简单,位运算)

异或运算性质,两个相等的数作异或运算得零,任何数与零作异或运算保持不变 所以整个数组的异或和就是答案 class Solution:def singleNumber(self, nums: List[int]) -> int:ans 0for i in nums:ans ^ ireturn ans一行代码,reduce作累积操…

为什么Excel插入图片不显示,点击能够显示

今天在做Excel表格时,发现上传图片后不能显示,但是点击还是能够出现图片的 点击如下 点击能看到,但是不显示?那么只需鼠标右键点击浮动即可显示

数学建模——确定性时间序列分析方法

目录 介绍 确定性时间序列分析方法 1、时间序列的常见趋势 (1)长期趋势 (2)季节变动 (3)循环变动 (4)不规则变动 常见的时间序列模型有以下几类 2、时间序列预测的具体方法 …

pdf压缩文件怎么压缩最小?pdf压缩方法汇总

PDF是一种常见的文件格式,通常用于电子文档和印刷品,由于PDF文件通常包含大量的元数据、字体、图像和其他元素,因此它们的大小可能会非常大。 为了解决这个问题,我们可以使用一些PDF压缩工具来帮助我们,以便我们能够更…