你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Durable Task Scheduler 是一种托管后端服务,用于持久化编排状态。 它与连接到它的业务流程框架分开计费。 持久任务计划程序不直接收取 Durable Functions 或持久任务 SDK 的费用。 总成本有两个组成部分:
- 持久任务计划程序 — 根据你选择的 SKU(专用或消耗)计费
- 计算资源:由托管应用程序的平台单独计费,无论是Azure Functions(适用于 Durable Functions)还是容器/VM 平台(适用于 Durable Task SDKs)
下表一目了然地比较这两种定价模型。
| 专属 | 消耗 | |
|---|---|---|
| 计费模型 | 每个容量单位的每月固定成本(CU) | 按触发的操作付费 |
| 最大吞吐量 | 每个 CU 每秒 2,000 次操作(最多 3 个 CU) | 500 个操作/秒 |
| 数据保留 | 最多 90 天 | 最多 30 天 |
| 高可用性 | 支持(需要 3 个 CU) | 不可用 |
| 最适用于 | 具有可预测规模的生产工作负载 | 开发/测试和变量工作负荷 |
有关当前定价,请参阅 持久任务调度器定价页。
什么是动作?
操作是持久任务计划程序发送到你的应用程序的消息,触发业务流程协调程序、活动或实体函数的执行。 操作包括:
- 启动业务流程或子业务流程
- 启动活动
- 完成计时器
- 触发外部事件
- 执行实体操作
- 暂停、恢复或终止编排
- 处理活动、实体调用、实体锁定或子业务流程的结果
下图显示如何计算业务流程中的操作。
示例
调用三个不同活动的业务流程会产生以下操作:
在此示例中,Durable Task Scheduler 按如下所示处理每个操作:
- 业务流程协调程序开始 (
RunOrchestrator) 使用一个操作 - 活动 1 (
(nameof(SayHello), "Tokyo")) 使用两个动作:- 计划活动
- 处理结果
- 活动 2 (
(nameof(SayHello), "Seattle")) 使用两个操作:- 计划活动
- 处理结果
- 活动 3 (
(nameof(SayHello), "London")) 使用两个操作:- 计划活动
- 处理结果
专用 SKU 定价和容量
专用 SKU 通过预分配的容量单位(OU)提供可预测的性能。 每个部署最多支持三个 CU。 你可以在每个订阅的每个区域中通过专用 SKU 最多创建 25 个计划程序和 25 个任务中心。 如需更多配额,联系客户支持。
主要功能
| 功能 | 说明 |
|---|---|
| 基本成本 | 固定每个 CU 的每月成本(区域定价)。 不是“按动作”计费。 |
| 性能 | 每个 CU 每秒最多支持 2,000 个操作和 50 GB 的编排数据存储。 |
| 业务流程数据保留 | 最多 90 天。 |
| 自定义缩放 | 将 CU 配置为符合您的工作负荷需求。 每个部署需要一个 CU。 |
| 高可用性 | 通过部署多个CU,实现高可用性。 至少需要三个 CU。 |
注释
对于高可用性部署,请配置三个 CU。 Single-CU 部署不提供冗余。
计算专用 SKU 的容量单位
示例 1
你有一个包含五个活动的业务流程,加上错误处理,每个业务流程平均 12 个操作(业务流程协调程序和活动调用)。 接下来按照每个月运行 2000 万个业务流程来计算。
| Step | 计算 | 结果 |
|---|---|---|
| 每月行动 | 20,000,000 × 12 | 240,000,000 动作 |
| 每秒动作次数 | 240,000,000 ÷ 2,628,000 (一个月的秒数) | 约 91 次操作/秒 |
| 所需的 CU | 91 ÷ 2,000 | 需要 CU:0.046 → 1 CU 足够 |
示例 2
一家大型企业每月运行 5 亿个复杂操作编排,每个编排平均有 15 个动作(多个活动由协调器协调)。
| Step | 计算 | 结果 |
|---|---|---|
| 每月行动 | 5 亿× 15 | 75 亿次操作 |
| 每秒动作次数 | 75亿÷ 2,628,000 | ≈ 每秒 2,854 个动作 |
| 所需的 CU | 2,854 ÷ 2,000 | 需要 CU:1.43 → 2 个 CU 足够 |
示例 3
软件即服务(SaaS)平台每月支持 8 亿个业务流程,每个业务流程平均有 15 个作(用户交互、后台处理和外部 API 调用)。
| Step | 计算 | 结果 |
|---|---|---|
| 每月行动 | 8亿× 15 | 120 亿次操作 |
| 每秒动作次数 | 120亿÷ 2,628,000 | ≈ 4,571 个操作/秒 |
| 所需的 CU | 4,571 ÷ 2,000 | 需要 计算单位:2.29 → 3 个 计算单位 足够 |
消耗 SKU
消耗型 SKU 提供按用量付费模型,非常适合波动性工作负载和开发方案。
你可以在每个订阅的每个区域中通过消耗 SKU 最多创建 10 个计划程序和 5 个任务中心。 如需更多配额,联系客户支持。
主要功能
| 功能 | 说明 |
|---|---|
| 按使用付费 | 仅支付已执行操作的费用。 无需前期成本、最低承诺或基本费用。 |
| 性能 | 最多支持每秒 500 项操作。 |
| 数据保留期 | 最多保留 30 天的数据。 |
示例 1
开发团队正在测试简单的业务流程,每个业务流程都有三个操作(使用 “Hello City”模式),每月运行 10,000 个业务流程。
| Step | 计算 | 结果 |
|---|---|---|
| 每月行动 | 10,000 × 3 | 30,000 个动作 |
示例 2
电子商务应用程序在促销销售活动期间体验动态扩展。 它使用一个总共有七个操作的业务流程,每月运行约 20,000 次。
| Step | 计算 | 结果 |
|---|---|---|
| 每月行动 | 20,000 × 7 | 140,000 个动作 |
计算成本
除了持久任务计划程序,还需为托管应用程序的计算平台付费。 计算成本取决于使用的编排框架。
Durable Functions
Durable Functions在 Azure Functions 上运行。 计算成本取决于所选Azure Functions托管计划:
| 托管计划 | 说明 |
|---|---|
| 消耗计划 | 您只需为函数实际运行的时间付费。 包括自动伸缩和每月免费额度。 |
| 灵活消费计划 | 事件驱动的扩展与虚拟网络集成。 为请求处理期间的实例付费,加上始终就绪的基线。 |
| 高级计划 | 预预热实例以避免冷启动,具有虚拟网络连接。 按 vCPU 和内存秒计费。 |
| 专用(应用服务)计划 | 在应用服务计划内的专用虚拟机上运行函数。 最适合你有未充分利用且已运行其他应用服务实例的 VM 的情况。 |
有关 Durable Functions 的详细计费行为(包括重播计费、等待、HTTP 轮询),请参阅Durable Functions 计费。 有关Azure Functions定价,请参阅 Azure Functions 定价。
持久任务软件开发工具包
Durable Task SDK 与平台无关,可在不同的计算平台上运行:
| 计算平台 | 说明 |
|---|---|
| Azure 容器应用 | 使用基于消耗或专用定价的无服务器容器托管。 针对 vCPU 和内存使用情况计费。 |
| Azure Kubernetes 服务 (AKS) | 托管 Kubernetes 群集,您需要为群集中的虚拟机(节点)付费。 |
| Azure 应用服务 | 完全托管的平台,用于托管具有不同定价层的 Web 应用程序,具体取决于功能和规模。 |
有关详细的定价信息,请参阅每个计算服务的计费文档:
- Azure 容器应用计费
- 了解Azure Kubernetes 服务成本
计划和管理 Azure 应用服务 的成本