跳过主要内容

设计预览

dora 框架由不同的组件构成:

设计图

存在以下主要组件:

  • Nodes: Dora 节点是隔离的、孤立的,通过dora库与其它节点通信的进程。 节点是用户指定的特定程序。 节点实现他们自己的 main 函数并且因此可以完全控制它们的执行。

    节点使用 dora library 与其它节点通信,它可用于多种语言(Rust、C;也许是 Python、WASM)。 通信通过 communication layer 发生,在我们的第一个版本中该层将是 zenoh 。 我们计划在将来添加更多选项。 所有通信层实现都应能够防止断开连接,因此即使算子失去与协调器的连接也应该能够继续运行。

  • Coordinator: 协调器负责从 YAML 文件中读取数据流、验证数据流,并将节点部署到指定或自动确定的计算机。 它监视算子的运行状况并实现高级集群管理功能。 例如,我们能实现云节点的自动化伸缩,或算子复写与重启。 协调器能被通过一个命令行程序(CLI)控制。

节点

在dora中实现一个操作的两种路径:要么作为一个 dora 算子,要么作为一个自定义节点。 两者各有优劣,如下所述。 通常 ,建议创建 dora 算子并且仅在必要时使用自定义节点。

节点提供了一组不同的优势:

  • 每一个节点都是隔离的、孤立的进程,这对于安全关键的操作很重要。
  • 它们支持锁定资源。 例如,一个 CPU 核心通过数据流配置文件可被锁定至一个自定义节点。
  • 它们可以完全控制其执行,从而允许创建复杂的输入和唤醒规则。