网站首页 > java教程 正文
Cadence是一个开源的无故障状态代码平台和工作流引擎,专为解决与第三方 API、内部服务和长期运行的业务流程进行复杂交互的挑战。Cadence 为使用需要容错的基于微服务的架构以及包含无数多步骤并发工作流或与多个第三方 API 交互的应用程序的开发团队提供了很多价值。
Cadence 将应用程序的整个状态保存在与任何特定进程无关的持久虚拟内存中。存储的应用程序状态包括用户定义活动的所有调用参数和返回结果。然后,它使用该信息来赶上并重播被中断的工作流。
Cadence 拥有使开发人员能够使用 Java、Go、Python 和 Ruby 等流行语言创建和协调工作流的库。Cadence 服务(例如工作人员)在很大程度上是无状态的,并利用数据存储来实现任务/工作流的持久性。支持的存储选项包括开源 Cassandra 和 MySQL/PostgreSQL,并且适配器可用于任何具有多行单分片事务的数据库。还提供多种服务部署模型。例如,Uber 使用由数百个应用程序共享的多租户 Cadence 集群。
Cadence 的优势体现在以下用例中:
- 定期执行(分布式 cron)。Cadence 保证定期调度的业务逻辑的执行,完成复杂的错误处理、重试策略和异步历史事件复制。重要的是,Cadence 支持大规模并行执行作业,能够同时执行数百万个工作流。
- 微服务编排。实现为多个微服务调用的业务流程必须使所有这些调用成功,即使下游服务失败。Cadence 保证工作流代码的完成,支持无限重试并使补偿逻辑易于开发,例如 SAGA 模式。
- 轮询。定期检查状态更改的轮询作业(通常用于监视或文件处理)与 Cadence 对长时间运行的活动和无限重试的支持特别匹配。
- 事件驱动的应用程序。Cadence 直接支持异步事件,并为开发人员抽象出状态持久化的复杂性,使实现侦听多个事件源的应用程序变得简单。
- 存储扫描。Cadence 支持对大型分区数据集(甚至是数十亿个文件)进行可扩展、弹性和完整的扫描。
- 批量作业。对于外部 API 调用可能失败的批处理作业,Cadence 保证持久性。
- 基础设施供应。长时间运行的配置操作可能会出现间歇性故障;Cadence 可以防止这种情况发生。该平台还支持将活动执行路由到特定进程或主机,以及可扩展的容错锁定行为以一次在资源上执行单个突变。
- CI/CD 管道和应用程序部署。通过使开发人员能够专注于业务逻辑,Cadence 为构建部署解决方案提供了一个理想的平台。
- 运营管理。Cadence 支持自动管理和恢复,以创建自操作数据库等。
- 交互式应用程序。Cadence 的性能和可扩展性支持 UI 会话状态跟踪和同步后台操作执行。
- DSL 工作流程。Cadence SDK 允许开发人员编写解释 DSL 流程定义的容错、可扩展、持久的应用程序。
- 大数据和机器学习。Cadence 为大数据和机器学习解决方案提供强大的控制平面,提供任务执行路由来控制 ML 模型和其他文件的分配方式。
要开始使用 Cadence,请获取Cadence 服务器或Docker 映像的[url=https://github.com/uber/cadence]GitHub 存储库[/url]。
在此处获取最新的 Cadence Java 客户端。将其作为依赖项包含在您的 Java 项目中:
通过向连接到 Cadence 服务的工作人员注册,将此工作流链接到 Cadence 框架(工作人员默认连接到本地运行的服务)。
|
现在,通过运行工作程序使用 CLI 执行 Hello World 工作流。
|
- 上一篇: Bladex Workflow工作流引擎开发进阶
- 下一篇: 「赵强老师」大数据工作流引擎Oozie
猜你喜欢
- 2024-10-27 30分钟学会:springboot+mysql+camunda开源工作流引擎
- 2024-10-27 详解JavaEE中级程序员路线图,其涉及课程资源已更新
- 2024-10-27 吐血推荐一款开源工作流引擎:camunda使用入门
- 2024-10-27 工作流引擎开发系列一基础知识(工作流引擎的好处)
- 2024-10-27 超轻量级工作流引擎,只要七张表就解决工作流ingens...
- 2024-10-27 Windmill:最快的自托管开源工作流引擎
- 2024-10-27 Springboot整合工作流引擎Activiti(二)
- 2024-10-27 流程智慧:低代码开发平台工作流引擎的技术原理解析
- 2024-10-27 工作流引擎的工作原理与功能(工作流引擎是什么意思)
- 2024-10-27 免费开源,一款快速开发模块化脚手架,含工作流引擎
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)