Dapr 工作流让开发人员能够可靠地编写业务逻辑和集成。由于 Dapr 工作流是有状态的,它们支持长时间运行和容错应用程序,非常适合编排微服务。Dapr 工作流与其他 Dapr 构建块(如服务调用、发布订阅、状态管理和绑定)无缝协作。
Dapr 工作流的耐用性和弹性功能包括:
Dapr 工作流可以应用于以下场景:
使用 Dapr 工作流,您可以编写活动,然后在工作流中编排这些活动。工作流活动是:
除了活动之外,您还可以编写工作流以调度其他工作流作为子工作流。子工作流具有独立于启动它的父工作流的实例 ID、历史记录和状态,除了终止父工作流会终止由其创建的所有子工作流这一事实。子工作流还支持自动重试策略。
与 Dapr actor 相同,您可以为任何时间范围安排类似提醒的持久延迟。
当您使用工作流代码创建应用程序并使用 Dapr 运行它时,您可以调用驻留在应用程序中的特定工作流。每个单独的工作流可以:
Dapr 工作流简化了微服务架构中复杂的、有状态的协调需求。以下部分描述了可以从 Dapr 工作流中受益的几种应用程序模式。
了解更多关于不同类型的工作流模式
Dapr 工作流 编写 SDK 是特定语言的 SDK,包含用于实现工作流逻辑的类型和函数。工作流逻辑存在于您的应用程序中,并由运行在 Dapr sidecar 中的 Dapr 工作流引擎通过 gRPC 流进行编排。
您可以使用以下 SDK 编写工作流。
语言栈 | 包 |
---|---|
Python | dapr-ext-workflow |
JavaScript | DaprWorkflowClient |
.NET | Dapr.Workflow |
Java | io.dapr.workflows |
Go | workflow |
想要测试工作流?通过以下快速入门和教程来查看工作流的实际应用:
快速入门/教程 | 描述 |
---|---|
工作流快速入门 | 运行一个包含四个工作流活动的工作流应用程序,查看 Dapr 工作流的实际应用 |
工作流 Python SDK 示例 | 了解如何使用 Python dapr-ext-workflow 包创建和调用 Dapr 工作流。 |
工作流 JavaScript SDK 示例 | 了解如何使用 JavaScript SDK 创建和调用 Dapr 工作流。 |
工作流 .NET SDK 示例 | 了解如何使用 ASP.NET Core web API 创建和调用 Dapr 工作流。 |
工作流 Java SDK 示例 | 了解如何使用 Java io.dapr.workflows 包创建和调用 Dapr 工作流。 |
工作流 Go SDK 示例 | 了解如何使用 Go workflow 包创建和调用 Dapr 工作流。 |
想要跳过快速入门?没问题。您可以直接在您的应用程序中试用工作流构建块。在Dapr 安装完成后,您可以开始使用工作流,从如何编写工作流开始。