README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
Dapr 示例
注意:Dapr 示例最近已重新组织。面向初学者并旨在帮助用户快速上手 Dapr 的示例已迁移至独立仓库 dapr/quickstarts。
本仓库中的示例使用不同语言展示 Dapr 的功能,并涵盖广泛的常见场景。部分示例专注于特定的使用模式或特定的 Dapr 功能,而其他示例则是利用多个 Dapr 构建块和功能的端到端演示。
如果您是 Dapr 的新手,建议先查看以下资源:
注意,这些示例由 Dapr 社区维护,不保证与最新版本的 Dapr 运行时完全兼容。
本仓库中的示例
| 示例 | 详情 |
|---|---|
| Twitter Sentiment Processor | 用于在 Microsoft Build 2020 大会上演示 Dapr 的代码示例,展示了一个执行推文情感处理的多语言分布式应用程序 |
| Hello world slim (no Docker dependency) | 此示例是 hello-world 快速入门示例的一个版本,展示了如何在本地环境中没有 Docker 的情况下安装、初始化和使用 Dapr |
| Hello TypeScript | 此示例是 hello-world 快速入门示例的一个版本,展示了如何在 TypeScript 项目中使用 Dapr。 |
| Docker compose sample | 演示如何使用 Docker Compose 在本地运行 Dapr |
| Dapr, Azure Functions, and KEDA | 展示 Dapr 与 Azure Functions 和 KEDA 一起使用,创建一个利用 Dapr pub/sub 的多语言 Functions-as-a-Service 应用程序 |
| Middleware OAuth to Google APIs - Interactive | 演示使用 Dapr 中间件来启用 OAuth 2.0 授权并为 Google APIs 注入客户端密钥。 |
| Middleware OAuth to Microsoft and AAD APIs - Non Interactive | 演示使用 Dapr 中间件来启用 OAuth 2.0 授权并为 Microsoft 和 Azure Active Directory 应用程序注入客户端密钥。 |
| Read Kubernetes Events | 展示 Dapr 与 Kubernetes Input binding 一起使用,以监视 Kubernetes 集群中的事件 |
| 批处理文件处理 | 本示例演示了使用微服务和 Dapr 处理一批相关文本文件的端到端示例。通过本示例,您将了解 Dapr 的状态管理、绑定、Pub/Sub 以及端到端跟踪。 |
| Azure APIM 中的 Dapr 集成 | 在 Kubernetes 上使用自托管网关,在 Azure API Management 服务中配置 Dapr。演示了如何公开 Dapr API 以进行服务方法调用、向 Pub/Sub 主题发布内容,以及结合请求内容转换进行绑定调用。 |
| 分布式日历 | 展示了如何使用 Dapr 的状态存储、Pub/Sub 和输出绑定功能,大致创建一个 MVCS 架构应用程序的分布式版本。 |
| Hello Service Fabric | 展示了在 Service Fabric 环境中使用状态存储、Pub/Sub 和服务调用,其中 Dapr sidecar 作为来宾可执行文件运行。 |
| Pub-sub 路由 | 演示了如何使用 Dapr 启用带有消息路由的 pub-sub 应用程序。 |
| 使用 Knative Serving 的分布式计算器 | 演示了如何使用 Dapr 和 Knative Serving,使用来自快速入门的分布式计算器。 |
| commercetools GraphQL 示例输出绑定 | 连接到 commercetools,允许您使用提供的 GraphlQL 查询来查询或操作 commercetools 项目。 |
| WebAssembly 中间件 | 演示了如何使用 WebAssembly 直接从 dapr sidecar 提供 HTTP 响应。 |
| Workflow + 外部端点调用 | 演示如何使用 Dapr Workflow API 来协调一个包含使用服务调用访问非 Dapr 端点的活动的订单流程。 |
| Workflow + Python 多应用微服务 | 演示如何使用 Dapr Workflow Python SDK 来协调跨多个启用 dapr 的微服务的订单流程。 |
| .NET 中的 Outbox | 演示如何使用 outbox 事务配合 Redis 和 MySql 状态存储以及作为消息代理的 Redis |
| 不使用 CloudEvents 消费 Kafka 消息 | 演示如何在 .NET 应用程序中使用 Confluent Kafka SDK 集成 Kafka 生产者与基于 Dapr 的消费者 |
| AWS EKS Pod Identity | 演示如何配置 Dapr 以使用 AWS EKS Pod Identity 访问 AWS Secrets Manager |
| 使用 Argo CD 和 Dapr 的 GitOps | 演示如何使用 Argo CD 在 Kubenetes 集群中安装 Dapr |
| AKS 工作负载身份联合 | 演示如何使用 Azure 工作负载身份联合与 dapr 组件 |
| 使用 Drasi 的响应式 Dapr 应用 | 演示 Drasi 如何通过最终一致的物化视图、实时仪表板和智能发布/订阅来增强 Dapr 应用 - 所有这些都只需少量声明式查询和 YAML 文件,且无需更改您的 Dapr 服务。 |
| 多应用电商工作流(Go + Java) | 演示使用多应用工作流,通过 Dapr Workflow 在 Go 和 Java 服务之间编排电商流程。 |
外部示例
| 示例 | 详情 |
|---|---|
| Dapr RetroPOS | Dapr Retro Point of Sales 是一个基于微服务的后端工作流示例。 |
| Dapr Traffic Control | 模拟带有测速摄像头的交通控制系统。此示例涵盖了所有 Dapr 构建模块。这也是书籍 Dapr for .NET Developers 中使用的示例应用程序。 |
| Dapr Examples | Dapr 在 Golang 中的使用示例。此仓库包含关于状态存储、访问管理、发布/订阅和订阅的示例。 |
| Java Pub/Sub Sample | 演示在 Kubernetes 集群中运行的 Java 应用程序如何使用 Dapr 实现发布/订阅消息架构。 |
| eShop on Dapr | 一个基于 eShopOnContainers 并由 Dapr 驱动的 .NET Core 电子商务示例应用程序。 |
示例维护
每个示例都包含 README.md,其中提供了该示例经过验证的 Dapr 版本信息。
如果您希望更新某个示例,或者最好能自行将其更新到更新的 Dapr 版本,请参阅贡献指南以了解有关在此仓库中创建问题和提交拉取请求的更多信息。
请注意,出于可维护性的原因,随着时间的推移,一些示例可能会从此仓库中移除。
示例贡献
如果您想向此仓库贡献一个示例,请参阅示例贡献指南以了解 PR 流程的详细信息。
示例应遵循以下高层指导原则:
- 示例应具有有意义的名称,帮助用户了解该示例的内容
- 示例代码应完整(即无需添加主要代码即可运行示例)
- 每个示例应包含一个 README.md 文件,清晰说明示例的功能及运行方法,包括前置条件。该文件还应包含此示例兼容的 Dapr 核心版本详情(见下文)。
- 强烈建议:
- 示例应用程序的架构图
- 脚本和自动化功能,以便用户轻松运行需要复杂设置和多个步骤的示例
除了示例代码和 README 之外,示例应列在此页面的上方 samples table
主示例 README 顶部的示例信息部分应遵循以下模板:
| 属性 | 详情 |
|---|---|
| Dapr 运行时版本 | vX.X |
| 语言 | [示例代码中使用的语言] |
| 环境 | [环境名称] |
注意:如果您不确定正在运行的 Dapr 运行时版本,请使用 Dapr CLI 命令
dapr --version
示例:
| 属性 | 详情 |
|---|---|
| Dapr 运行时版本 | v1.12.0 |
| 语言 | Go, C# (.NET Core), Node.js |
| 环境 | 本地或 Kubernetes |