项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 3852
使用教程
环境要求
- JDK 环境(仓库自带 Gradle Wrapper,用 ./gradlew 执行)
- 本地运行 AWS 模块或 extensions 时需安装 Docker 与 Docker Compose
- 使用 Kubernetes 支持时需本机 kubectl 可用且已配置 kubeconfig
- 可选:Python 环境,用于安装 maestro-sdk
安装与启动步骤
-
1获取项目源码
克隆 Netflix/maestro 仓库并进入项目根目录,后续所有 gradlew 命令都要在此目录执行。
git clone https://github.com/Netflix/maestro.git cd maestro -
2本地启动 maestro
在项目根目录用 Gradle Wrapper 启动服务,默认监听 8080 端口;首次运行会下载依赖,耗时较长。
./gradlew bootRun -
3触发示例工作流
服务起来后用 curl 调用 API 手动启动内置示例 DAG,请求头 user 标识操作者。
curl --header "user: tester" -X POST 'http://127.0.0.1:8080/api/v3/workflows/sample-dag-test-1/versions/latest/actions/start' -H "Content-Type: application/json" -d '{"initiator": {"type": "manual"}}' -
4启动 AWS 本地依赖
使用仓库自带 compose 文件拉起 AWS 相关依赖(extensions 场景下为 LocalStack,提供本地 SQS/SNS)。
docker compose -f maestro-aws/docker-compose.yml up -
5以 aws profile 启动
加上 spring.profiles.active=aws 参数重新启动服务,使其连接上一步拉起的 AWS 组件。
./gradlew bootRun --args='--spring.profiles.active=aws' -
6启动 extensions 服务
先拉起 LocalStack,再分别启动 maestro-server(8080)与 maestro-extensions(8081,消费 SQS 事件做 foreach 扁平化)。
docker compose -f maestro-aws/docker-compose.yml up -d ./gradlew :maestro-server:bootRun --args='--spring.profiles.active=aws' ./gradlew :maestro-extensions:bootRun -
7Kubernetes 支持
先确保 kubectl 可用,再启动服务,并上传 sample-kubernetes-wf.json 工作流定义后手动启动它。
./gradlew bootRun curl --header "user: tester" -X POST 'http://127.0.0.1:8080/api/v3/workflows' -H "Content-Type: application/json" -d @maestro-server/src/test/resources/samples/sample-kubernetes-wf.json curl --header "user: tester" -X POST 'http://127.0.0.1:8080/api/v3/workflows/sample-kubernetes-wf/versions/latest/actions/start' -H "Content-Type: application/json" -d '{"initiator": {"type": "manual"}}' -
8安装 Python SDK
如需在 Python 中调用 Maestro,可单独安装官方 SDK 包 maestro-sdk。
pip install maestro-sdk
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
spring.profiles.active=aws | 否 | 启用 AWS 模块相关配置,连接 SQS/SNS 等组件 | aws |
user 请求头 | 是 | 调用 API 时标识操作用户,README 示例为 tester | tester |
服务端口 | 否 | maestro-server 默认 8080,maestro-extensions 默认 8081 | 8080 |
如何确认成功
服务启动后访问 127.0.0.1:8080 的 API,示例工作流触发成功且无报错即表示运行正常。
常见问题
Q:不用 AWS 组件能直接跑吗?
A:可以。在项目根目录执行 ./gradlew bootRun 即可启动 maestro-server,README 中 AWS 相关步骤仅用于需要 SQS/SNS 的场景。
Q:8080 和 8081 端口分别是什么?
A:maestro-server 监听 8080,承载工作流 API;maestro-extensions 监听 8081,提供 foreach 扁平化视图等扩展 REST API。
Q:为什么需要先启动 LocalStack?
A:maestro-extensions 通过 SQS 订阅 maestro-server 发布的 SNS 事件,本地用 LocalStack 模拟 SQS/SNS,需先拉起才能联通。
Q:maestro-sdk 是服务的一部分吗?
A:不是。pip install maestro-sdk 安装的是 Python 侧 SDK,与服务端运行相互独立,可按需安装。
Q:Kubernetes 场景有什么前置条件?
A:需先配置好 kubernetes configs,保证本机 kubectl 命令可以正常工作,否则相关工作流无法执行。
注意事项
- 必须在项目根目录执行 ./gradlew 命令,子模块命令要用 :maestro-server、:maestro-extensions 前缀。
- AWS 场景需同时指定 --spring.profiles.active=aws,否则不会加载对应模块配置。
- Kubernetes 示例工作流需先 POST 上传定义文件,再调用 actions/start 触发。
- README 未给出 JDK 版本要求,如构建失败请优先检查本地 Java 环境。
核心亮点
- 由 Netflix 生产环境验证,具备处理超大规模工作流的能力
- 支持复杂 DAG 依赖和多种触发策略,灵活性强
- 提供高可用和资源优化特性,降低运维成本
不足之处
- 文档相对较少,社区生态仍在建设中
- 与 Airflow 等成熟工具相比,集成和插件生态有待完善
适用场景
- 大规模数据管道编排与调度
- 机器学习训练和推理工作流管理
- 云原生环境下的任务依赖和重试处理
替代项目
Apache Airflow、Prefect、Dagster
上一篇:dagster
下一篇:blackdagger
同类项目推荐
invisible_selenium
开源
改一行 import,Selenium 脚本秒变反检测 Firefox
Selenium that anti-bots cannot see, so no captchas: same API, anti-detect stealth he···
anansi
开源
让爬虫自愈,对话式驱动,硬刚反爬站点
A self-healing scraper for hostile sites: broken selectors repair themselves, browse···
broccoli
开源
把 Linear 工单变成已合并的 PR,AI 帮你写代码提审
Broccoli turns Linear tickets into shipped PRs — powered by Claude and Codex, runni···
personal-linkedin-agent
开源
用浏览器脚本自动打理 LinkedIn 日常操作
An agent to manage my personal LinkedIn account, using playwright for browser automa···
skills
开源
让 AI 智能体轻松操控浏览器,突破反爬墙,多任务并行不打架
Browser automation CLI built for AI agents. Break through anti-bot walls, hand off t···
Autotube
开源
自动生成并发布YouTube短视频,从选题到成片全流程无人值守
Automated YouTube Shorts creation using n8n, AI script generation, and video process···
windmill
开源
写脚本自动变工作流和内部工具,自托管还快
Code-first platform for workflows, apps and AI agents, on the fastest self-hostable ···
selfhost-ai
开源
一条命令自建 AI 自动化,替代 Zapier 和 Make
One-command installer for a self-hosted AI stack on your own server: n8n, Ollama, Op···
rssh
开源
手机电脑都能连服务器,AI 帮你敲命令传文件
An SSH tool dedicated to addressing all pain points · (macOS/Windows/Linux/Android/···
