了解 Dapr 与 Azure 容器应用的集成
分散式应用程序运行时 (Dapr) 是一组可逐步采用的功能,用于简化基于微服务的分散式应用程序的创作。 Dapr 提供了用于启用应用程序相互通信(通过发布/订阅进行的消息传递或可靠且安全的服务到服务调用)的功能。
Dapr 是一个开放源代码的云原生计算基金会 (CNCF) 项目。 CNCF 隶属于 Linux 基金会,为快速增长的云原生项目提供支持、监督和方向。 作为自行部署和管理 Dapr OSS 项目的替代方法,容器应用平台应:
- 提供托管和支持的 Dapr 集成
- 无缝处理 Dapr 版本升级
- 公开简化的 Dapr 交互模型,提高开发人员工作效率
Dapr API
Dapr API | 说明 |
---|---|
服务到服务调用 | 发现服务并执行可靠、直接的服务到服务调用(带有自动 mTLS 身份验证和加密)。 |
状态管理 | 为事务和 CRUD 操作提供状态管理功能。 |
发布/订阅 | 允许发布方和订阅方容器应用通过中间消息代理相互通信。 |
绑定 | 基于事件触发应用程序 |
执行组件 | Dapr 执行组件是消息驱动的单线程工作单元,旨在快速缩放。 例如,在突发密集型工作负载情况下。 |
可观察性 | 将跟踪信息发送到 Application Insights 后端。 |
机密 | 从应用程序代码访问机密或引用 Dapr 组件中的安全值。 |
配置 | 为支持的配置存储检索并订阅应用程序配置项目。 |
注意
该表包括稳定的 Dapr API。 若要详细了解如何使用 alpha API 和功能,请访问限制。
Dapr 核心概念
以下示例基于发布/订阅 API,用于演示与 Azure 容器应用中的 Dapr 相关的核心概念。
标签 | Dapr 设置 | 说明 |
---|---|---|
1 | 启用了 Dapr 的容器应用 | 通过配置一组 Dapr 参数,在容器应用级别启用 Dapr。 在多个修订模式下运行时,这些值适用于给定容器应用的所有修订版本。 |
2 | Dapr | 完全托管的 Dapr API 通过 Dapr sidecar 向每个容器应用公开。 可以通过 HTTP 或 gRPC 从容器应用调用 Dapr API。 Dapr sidecar 在 HTTP 端口 3500 和 gRPC 端口 50001 上运行。 |
3 | Dapr 组件配置 | Dapr 使用模块化设计,将功能作为组件交付。 Dapr 组件可由多个容器应用共享。 范围数组中提供的 Dapr 应用标识符决定了哪些启用了 Dapr 的容器应用会在运行时加载给定组件。 |
Dapr 启用
可以根据运行时上下文使用各种参数和注释配置 Dapr。 Azure 容器应用提供了三种可以配置 Dapr 的通道:
- 容器应用 CLI
- 基础结构即代码 (IaC) 模板,如 Bicep 或 Azure 资源管理器 (ARM) 模板
- Azure 门户
Dapr 组件和范围
Dapr 使用模块化设计,将功能作为组件交付。 可以选择使用 Dapr 组件,这完全取决于应用程序的需求。
容器应用中的 Dapr 组件为环境级别资源:
- 可以提供可插入的抽象模型,用于连接到支持的外部服务。
- 可以跨容器应用共享,也可以将范围限定在特定的容器应用之间。
- 可以使用 Dapr 机密安全地检索配置元数据。
默认情况下,同一环境中所有已启用 Dapr 的容器应用都将加载完整的一组已部署组件。 为了确保组件在运行时仅由适当的容器应用加载,应使用应用程序范围。