.NET 微服务架构技术栈梳理
.NET Core、RabbitMQ、EF Core、Web API、TCP、Swagger、Linux、Docker 构成了一个典型的现代化微服务或分布式系统开发环境。以下梳理它们各自的角色,并提供整合建议和最佳实践。
1. .NET Core(现为 .NET 6/7/8)
- 跨平台、高性能的运行时。
- 用于构建 Web 应用、API、微服务、控制台应用等。
- 推荐使用最新 LTS 版本(如 .NET 8)。
2. ASP.NET Core Web API
- 构建 RESTful 服务的标准方式。
- 支持依赖注入、中间件、配置管理等现代特性。
- 可与 Swagger 集成自动生成 API 文档。
最佳实践:
- 使用
Minimal APIs(.NET 6+)简化小型服务。 - 统一返回格式(如
Result<T>或 Problem Details)。 - 启用 CORS、日志、异常处理中间件。
3. Entity Framework Core(EF Core)
- ORM 框架,用于数据库操作。
- 支持 Code First、迁移(Migrations)、多种数据库(SQL Server、PostgreSQL、MySQL 等)。
最佳实践:
- 使用
DbContext的作用域生命周期(Scoped)。 - 避免 N+1 查询(使用
.Include()或显式投影)。 - 在生产环境中关闭敏感数据日志。
4. RabbitMQ
- 消息队列中间件,用于解耦、异步处理、削峰填谷。
- 常用于事件驱动架构、任务分发、日志收集等。
集成建议(.NET):
- 使用官方客户端
RabbitMQ.Client。 - 封装生产者/消费者逻辑(可结合
BackgroundService)。 - 考虑使用更高级抽象如 MassTransit 或 CAP(支持事务消息)。
5. TCP 通信
- 适用于需要高性能、低延迟的场景(如 IoT、游戏、自定义协议)。
- .NET 提供
TcpClient/TcpListener或System.IO.Pipelines实现高性能网络通信。
注意:相比 HTTP/Web API,TCP 更底层,需自行处理连接管理、序列化、心跳、重连等。
6. Swagger(OpenAPI)
- 自动生成交互式 API 文档。
- 在 .NET 中通过
Swashbuckle.AspNetCore包集成。
配置示例:
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
// ...
app.UseSwagger();
app.UseSwaggerUI();
7. Linux + Docker
- .NET Core 原生支持 Linux 部署。

