Rill Flow
概述
Rill Flow 是一个高性能、可扩展的分布式工作流编排服务,具有以下核心功能:
- 高性能:支持每天执行数千万任务,任务执行延迟小于100ms
- 分布式:支持异构分布式系统的编排和调度
- 易用:支持可视化流程编排和插件接入
- 云原生:支持云原生容器部署和云原生功能编排
- AIGC:支持快速集成LLM模型服务
演示
在线演示 (sandbox/sandbox)
快速开始
环境准备
在开始之前,请确保安装了以下工具:
- 适用于OSX/Linux的环境
- Docker
- Docker-Compose
服务部署
使用 Docker-Compose 在本地环境安装 Rill Flow 服务:
下载 Rill-Flow 源代码。
git clone https://github.com/weibocom/rill-flow.git
启动服务。
进入 Rill-Flow 源代码的 Docker 目录并执行一键启动命令:
cd rill-flow/docker
docker-compose up -d
如果您的系统安装了 Docker Compose V2 而不是 V1,请使用 docker compose 代替 docker-compose。通过运行 docker compose version 检查是否是这种情况。阅读更多信息这里。
验证安装
要检查 Rill Flow 的状态,请执行以下命令:
docker-compose ps
以下是预期的输出结果:
Name Command State Ports
------------------------------------------------------------------------------------------------------------------------------------------------------------
rill-flow-mysql docker-entrypoint.sh --bin ... Up 0.0.0.0:3306->3306/tcp, 33060/tcp
rillflow_cache_1 docker-entrypoint.sh redis ... Up 6379/tcp
rillflow_jaeger_1 /go/bin/all-in-one-linux Up 14250/tcp, 14268/tcp, 0.0.0.0:16686->16686/tcp, 5775/udp, 5778/tcp, 6831/udp, 6832/udp
rillflow_rill-flow_1 catalina.sh run Up 0.0.0.0:8080->8080/tcp
rillflow_sample-executor_1 uvicorn main:app --host 0. ... Up
rillflow_ui_1 /docker-entrypoint.sh /bin ... Up 0.0.0.0:80->80/tcp
如果您的实际输出与预期输出相符,这意味着 Rill Flow 已成功安装。
访问 Rill Flow 管理后台
命令成功执行后,您可以在 http://localhost 访问 Rill Flow 管理后台 (admin/admin)。如果服务器已部署,请使用服务器IP地址进行访问(默认端口为80)。
执行示例
- 步骤 1:打开 Rill Flow 管理后台,点击 “Flow Definition” 菜单,进入 "Flow Definition List" 页面,点击 “Create” 按钮
- 步骤 2:进入 “Flow Graph Edit” 页面后,打开 “一键导入” 开关,将以下yaml文件内容复制到文本框中,点击 “Submit” 按钮,可以提交一个简单的流程图。
version: 1.0.0
workspace: rillFlowSimple
dagName: greet
alias: release
type: flow
inputSchema: >-
[{"required":true,"name":"Bob","type":"String"},{"required":true,"name":"Alice","type":"String"}]
tasks:
- category: function
name: Bob
resourceName: http://sample-executor:8000/greet.json?user=Bob
pattern: task_sync
tolerance: false
next: Alice
inputMappings:
- source: "$.context.Bob"
target: "$.input.Bob"
- category: function
name: Alice
resourceName: http://sample-executor:8000/greet.json?user=Alice
pattern: task_sync
tolerance: false
inputMappings:
- source: "$.context.Alice"
target: "$.input.Alice"
- 步骤 3:提交流程图以执行任务
点击 “Test” 按钮,填写必需的参数,然后点击 “Submit” 按钮。
- 步骤 4:查看执行结果 点击上一步的 “Submit” 按钮,您将自动跳转到执行详情页面。您可以通过点击 “Execution Records” 按钮查看执行状态和详情。
更多查看结果的说明可以在执行状态中找到
文档
贡献者
以下是项目的贡献者及其 GitHub 链接:
- axb (@qdaxb) 维护者
- techlog (@techloghub) 维护者
- ch15084 (@ch15084) 维护者
- Ocean (@hhh041)
- xilong-t (@xilong-t)
- qfl (@qiaofenlin)
- Kylen (@Kylen)
- zzfzzf (@zzfzzf)
- feifei (@feifei325)
- moqimoqidea (@moqimoqidea)
- Guo, Jiansheng (@guojiansheng0925)
许可证
Rill Flow 是在Apache 许可证 2.0下的开源项目。