cadence-workflow/cadence

GitHub: cadence-workflow/cadence

Cadence 是一个分布式、可扩展且容错的编排引擎,用于可靠地执行长时间运行的异步业务逻辑工作流。

Stars: 9340 | Forks: 898

# Cadence [![Build Status](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/22c5965631103101.svg)](https://github.com/cadence-workflow/cadence/actions/workflows/ci-checks.yml) [![Coverage](https://codecov.io/gh/cadence-workflow/cadence/graph/badge.svg?token=7SD244ImNF)](https://codecov.io/gh/cadence-workflow/cadence) [![Slack Status](https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&style=social)](https://communityinviter.com/apps/cloud-native/cncf) [![Github release](https://img.shields.io/github/v/release/cadence-workflow/cadence.svg)](https://github.com/cadence-workflow/cadence/releases) [![License](https://img.shields.io/github/license/cadence-workflow/cadence.svg)](http://www.apache.org/licenses/LICENSE-2.0) Cadence Workflow 是一个自 2017 年以来的开源平台,用于构建和运行可扩展、容错且长时间运行的工作流。此存储库包含核心编排引擎和工具,包括 CLI、schema 管理、benchmark 和 canary。 ## 入门指南 Cadence 后端由多个服务、一个数据库(Cassandra/MySQL/PostgreSQL)以及可选的 Kafka+Elasticsearch 组成。 作为用户,您需要一个包含您的工作流实现的 worker。 一旦您运行了 Cadence 后端和 worker,您就可以使用 SDK 或通过 CLI 来触发工作流。 1. 在本地启动 cadence 后端组件 ``` docker compose -f docker/docker-compose.yml up ``` 2. 运行示例 试试 [Go](https://github.com/cadence-workflow/cadence-samples) 或 [Java](https://github.com/cadence-workflow/cadence-java-samples) 的示例配方。 3. 访问 UI 访问 http://localhost:8088 以检查工作流历史记录和详细跟踪。 ### Kubernetes 部署 为了获得引导式的 Kubernetes 安装体验,[KubeStellar Console](https://console.kubestellar.io/missions/install-cadence-workflow) 提供了一个分步任务,使用来自 [cadence-charts](https://github.com/cadence-workflow/cadence-charts) 的官方 Helm chart 部署 Cadence。该任务包括预检查、验证、故障排除和回滚支持。 ### 客户端库 您可以使用我们的某个客户端库来实现您的工作流: - [官方 Cadence Go SDK](https://github.com/cadence-workflow/cadence-go-client) - [官方 Cadence Java SDK](https://github.com/cadence-workflow/cadence-java-client) 还有社区开发的非官方 [Python](https://github.com/firdaus/cadence-python) 和 [Ruby](https://github.com/coinbase/cadence-ruby) SDK。 您还可以使用 [iWF](https://github.com/indeedeng/iwf) 作为 Cadence 之上的 DSL 框架。 ### CLI Cadence CLI 可用于操作工作流、tasklist、domain 甚至集群。 您可以通过以下方式安装 Cadence CLI: * 使用 brew 安装 CLI:`brew install cadence-workflow` * 如果您需要通过 homebrew 安装旧版本的 CLI,请按照[说明](https://github.com/cadence-workflow/cadence/discussions/4457)进行操作。通常仅当您运行的服务器版本过于老旧时才需要这样做。 * 使用 docker 镜像作为 CLI:`docker run --rm ubercadence/cli:` 或 `docker run --rm ubercadence/cli:master ` 。当您想尝试新功能时,请务必更新您的镜像:`docker pull ubercadence/cli:master ` * 自己构建 CLI 二进制文件,检出存储库并运行 `make cadence` 以构建所有工具。有关 make 命令的前置条件,请参见 [CONTRIBUTING](CONTRIBUTING.md)。 * 自己构建 CLI 镜像,请参见[说明](docker/README.md#diy-building-an-image-for-any-tag-or-branch) Cadence CLI 是一个功能强大的工具。命令按 tab 键组织。例如 `workflow`->`batch`->`start`,或 `admin`->`workflow`->`describe`。 请阅读[文档](https://cadenceworkflow.io/docs/cli/#documentation),并始终尝试在任何 tab 上使用 `--help` 来学习和探索。 ### UI 试试 [Cadence Web UI](https://github.com/cadence-workflow/cadence-web) 以在 Cadence 上查看您的工作流。 (如果您使用 docker compose 运行 Cadence,这已经在 localhost:8088 上可用) ### 此存储库中的其他二进制文件 #### Bench/压力测试工作流工具 参见 [bench 文档](./bench/README.md)。 #### 定期功能健康检查工作流工具(又名 Canary) 参见 [canary 文档](./canary/README.md)。 #### 用于 SQL 和 Cassandra 的 Schema 工具 这些工具用于[手动设置或升级数据库 schema](docs/persistence.md) * 如果服务器使用 Cassandra 运行,请使用 [Cadence Cassandra tool](tools/cassandra/README.md) * 如果服务器使用 SQL 数据库运行,请使用 [Cadence SQL tool](tools/sql/README.md) 获取 schema 工具最简单的方法是通过 homebrew。 `brew install cadence-workflow` 也包含 `cadence-sql-tool` 和 `cadence-cassandra-tool`。 * schema 文件位于 `/usr/local/etc/cadence/schema/`。 * 要升级,请确保首先删除旧的 ElasticSearch schema:`mv /usr/local/etc/cadence/schema/elasticsearch /usr/local/etc/cadence/schema/elasticsearch.old && brew upgrade cadence-workflow`。否则 ElasticSearch schema 可能无法更新。 * 如果您需要通过 homebrew 安装旧版本的 schema 工具,请按照[说明](https://github.com/cadence-workflow/cadence/discussions/4457)进行操作。 但是,更简单的方法是使用新版本的 schema 工具配合旧版本的 schema。 您所需要做的就是从此存储库中检出旧版本的 schema。运行 `git checkout v0.21.3` 以获取 [schema 文件夹](/schema) 中的 v0.21.3 schema。 ### 学习资源 请观看 Maxim 在 [Data@Scale Conference](https://atscaleconference.com/videos/cadence-microservice-architecture-beyond-requestreply) 上的演讲,了解 Cadence 的架构概览。 访问 [cadenceworkflow.io](https://cadenceworkflow.io) 了解更多关于 Cadence 的信息。加入我们的 [Cadence 文档](https://github.com/cadence-workflow/Cadence-Docs) 项目。欢迎在此处提出 Issue 或 Pull Request。 ## 随时间变化的 Star 数 [![Stargazers over time](https://starchart.cc/uber/cadence.svg?variant=adaptive)](https://starchart.cc/uber/cadence) ## 许可证 Apache 2.0 许可证,详情请见 [LICENSE](https://github.com/cadence-workflow/cadence/blob/master/LICENSE)。
标签:EVTX分析, JS文件枚举, 任务编排, 分布式系统, 响应大小分析, 子域名突变, 工作流引擎, 微服务架构, 日志审计, 测试用例, 请求拦截