.NET 如何搭建一个完整的微服务应用

发布于:2025-07-10 ⋅ 阅读:(18) ⋅ 点赞:(0)

在 .NET 中搭建微服务应用需遵循模块化、独立部署和分布式治理等核心原则。以下是结合最新实践(.NET 8 和 Docker/Kubernetes)的完整流程:


⚙️ 一、环境准备

  1. 安装 .NET SDK

    • 下载 .NET 8 SDK(跨平台支持 Win/Linux/macOS)
    • 验证安装:dotnet --version
  2. 安装 Docker

    • 用于容器化微服务:Docker Desktop
    • 验证安装:docker --version

🧩 二、创建基础微服务(以用户服务为例)

步骤:
  1. 创建 Web API 项目

    dotnet new webapi -n UserService -f net8.0 --no-https
    cd UserService
    
  2. 实现业务逻辑
    修改 Controllers/UsersController.cs

    [ApiController]
    [Route("api/[controller]")]
    public class UsersController : ControllerBase
    {
         
        [HttpGet("{id}")]
        public IActionResult GetUser(int id)
        {
         
            return Ok(new {
          Id = id, Name = "John Doe", Email = "john@example.com" });
        }
    }
    
  3. 运行服务

    dotnet run --urls http://localhost:5001
    
    • 访问 http://localhost:5001/api/users/1 测试

📦 三、容器化微服务

  1. 添加 Dockerfile(项目根目录)

    # 构建阶段
    FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
    WORKDIR /src
    COPY UserService.csproj .
    RUN dotnet restore
    COPY . .
    RUN dotnet publish -c Release -o /app
    
    # 运行阶段
    FROM mcr.microsoft.com/dotnet/aspnet:8.0
    WORKDIR /app
    COPY --from=build /app .
    ENTRYPOINT ["dotnet", "UserService.dll"]
    
  2. 构建并运行容器

    docker build -t user-service .
    docker run -d -p 5001:80 --name user-container user-service
    
    • 访问 http://localhost:5001/api/users/1

🌐 四、构建多服务架构

  1. 创建订单服务(同用户服务步骤)

    dotnet new webapi -n OrderService -f net8.0 --no-https
    
  2. 添加 API 网关(Ocelot)

    • 创建网关项目:
      dotnet new webapi -n ApiGateway
      cd ApiGateway
      dotnet add package Ocelot
      
    • 配置 appsettings.json
      {
             
        "Routes": [
          {
             
            "DownstreamPathTemplate": "/api/users/{id}",
            "DownstreamHostAndPorts": [ {
              <

网站公告

今日签到

点亮在社区的每一天
去签到