SuperAPI AI 工具集

dotnet-aspire-patterns

部署与运维

查看项目

更新于 10-16 09:46

技能介绍

用途:本技能面向构建云就绪分布式应用的开发者,整理 .NET Aspire 的编排模式。Aspire 是有主见的可观测、生产就绪分布式应用技术栈,提供编排(用 C# 中的 AppHost 定义分布式拓扑)、组件(常见后端服务的预配置 NuGet 包)、Service Defaults(OpenTelemetry、健康检查、弹性的共享配置)以及本地开发仪表板。需注意 Aspire 不是部署目标,它编排本地开发与测试体验,生产环境由它生成部署工具(如 Azure Developer CLI、Kubernetes)消费的清单。

主要能力与使用方式:在 AppHost 项目(Aspire.AppHost.Sdk)中定义拓扑,通过 AddPostgres、AddRedis、AddRabbitMQ、AddProject 等 API 添加后端服务与项目引用,用 WithReference 注入连接信息,用 WithExternalHttpEndpoints 标记公开端点,用 WaitFor 控制启动顺序,用 WithDataVolume 持久化数据。服务发现由 AppHost 注入端点信息、ServiceDefaults 配置实现,应用代码可用 https+http://worker 这类方案前缀解析服务;后端服务连接字符串经 ConnectionStrings 配置节注入。组件分两类:Aspire.Hosting.* 装在 AppHost 用于定义资源,Aspire.* 客户端包装在服务项目用于消费资源,并自动注册 DI、健康检查、OpenTelemetry 与默认弹性(重试、超时)。ServiceDefaults 是各服务项目引用的共享库,集中配置追踪、指标、日志与健康检查,并映射 /health 与 /alive 端点。运行 AppHost 时会启动仪表板,展示资源状态、控制台日志、结构化日志、分布式追踪与实时指标;也可用 mcr.microsoft.com/dotnet/aspire-dashboard:9.1 镜像独立运行仪表板。健康检查可由组件自动注册,也可添加自定义检查。

限制与范围:不涵盖原始 Dockerfile 编写与多阶段构建(见 dotnet-containers)、Kubernetes 清单/Helm/Compose(见 dotnet-container-deployment)、OpenTelemetry SDK 配置与自定义指标(见 dotnet-observability)、DI 生命周期机制(见 dotnet-csharp-dependency-injection)以及后台服务托管(见 dotnet-background-services)。选择建议:多为 .NET 服务且需要标准化可观测性与简化本地开发时用 Aspire;只有单个 API 加数据库时可选;需要细粒度控制、多语言服务或团队已熟悉 Compose/Kubernetes 时用手动编排。