电商微服务架构 #

一、系统概述 #

1.1 业务模块 #

text
┌─────────────────────────────────────────────────────────────┐
│                    电商系统模块                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   ┌─────────────┐  ┌─────────────┐  ┌─────────────┐        │
│   │ 用户服务    │  │ 商品服务    │  │ 订单服务    │        │
│   │ User Svc    │  │ Product Svc │  │ Order Svc   │        │
│   └─────────────┘  └─────────────┘  └─────────────┘        │
│                                                             │
│   ┌─────────────┐  ┌─────────────┐  ┌─────────────┐        │
│   │ 库存服务    │  │ 支付服务    │  │ 物流服务    │        │
│   │ Inventory   │  │ Payment     │  │ Shipping    │        │
│   └─────────────┘  └─────────────┘  └─────────────┘        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

1.2 技术栈 #

组件 技术选型
注册中心 Nacos
配置中心 Nacos
网关 Spring Cloud Gateway
服务调用 OpenFeign
熔断降级 Resilience4j
分布式事务 Seata
消息队列 RocketMQ
链路追踪 Zipkin

二、服务设计 #

2.1 用户服务 #

java
@RestController
@RequestMapping("/api/users")
public class UserController {

    @PostMapping("/register")
    public Result<User> register(@RequestBody UserDTO userDTO) {
        return Result.success(userService.register(userDTO));
    }

    @PostMapping("/login")
    public Result<String> login(@RequestBody LoginDTO loginDTO) {
        return Result.success(userService.login(loginDTO));
    }
}

2.2 商品服务 #

java
@RestController
@RequestMapping("/api/products")
public class ProductController {

    @GetMapping("/{id}")
    public Result<Product> getProduct(@PathVariable Long id) {
        return Result.success(productService.getById(id));
    }

    @GetMapping
    public Result<Page<Product>> listProducts(ProductQuery query) {
        return Result.success(productService.list(query));
    }
}

2.3 订单服务 #

java
@RestController
@RequestMapping("/api/orders")
public class OrderController {

    @PostMapping
    @GlobalTransactional
    public Result<Order> createOrder(@RequestBody OrderDTO orderDTO) {
        return Result.success(orderService.createOrder(orderDTO));
    }
}

三、架构图 #

text
                    ┌─────────────────────────────────────────┐
                    │              客户端请求                  │
                    └─────────────────┬───────────────────────┘
                                      │
                                      ▼
                    ┌─────────────────────────────────────────┐
                    │         Spring Cloud Gateway            │
                    │         (API网关/路由/限流)              │
                    └─────────────────┬───────────────────────┘
                                      │
        ┌─────────────────────────────┼─────────────────────────────┐
        │                             │                             │
        ▼                             ▼                             ▼
┌───────────────┐           ┌───────────────┐           ┌───────────────┐
│   用户服务     │           │   商品服务     │           │   订单服务     │
│  User Service │           │Product Service│           │ Order Service │
└───────┬───────┘           └───────┬───────┘           └───────┬───────┘
        │                           │                           │
        └───────────────────────────┼───────────────────────────┘
                                    │
        ┌───────────────────────────┼───────────────────────────┐
        │                           │                           │
        ▼                           ▼                           ▼
┌───────────────┐           ┌───────────────┐           ┌───────────────┐
│    Nacos      │           │    Seata      │           │   RocketMQ    │
│  注册/配置中心 │           │  分布式事务    │           │    消息队列    │
└───────────────┘           └───────────────┘           └───────────────┘

四、总结 #

要点 说明
服务拆分 按业务域拆分
技术选型 Spring Cloud Alibaba
分布式事务 Seata AT模式

接下来让我们学习 容器化部署

最后更新:2026-03-28