[ SKILL_DOCUMENTATION ]
# C4 架构高级模式
本指南涵盖了记录复杂架构的高级模式,包括微服务、事件驱动系统、部署和 API 文档。
## 微服务架构
### 单团队所有权
当一个团队拥有所有微服务时,将它们建模为单个系统内的**容器**:
mermaid
C4Container
title 电子商务平台 - 单团队
Person(customer, "客户", "在线购物者")
System_Ext(payment, "Stripe", "支付")
System_Ext(shipping, "FedEx", "物流")
System_Boundary(platform, "电子商务平台") {
Container(gateway, "API 网关", "Kong", "路由、认证、限流")
Container(orderSvc, "订单服务", "Node.js", "订单处理")
ContainerDb(orderDb, "订单数据库", "PostgreSQL", "订单")
Container(productSvc, "产品服务", "Go", "产品目录")
ContainerDb(productDb, "产品数据库", "MongoDB", "产品")
Container(userSvc, "用户服务", "Java", "认证")
ContainerDb(userDb, "用户数据库", "PostgreSQL", "用户")
ContainerDb(cache, "缓存", "Redis", "会话")
}
Rel(customer, gateway, "API 请求", "HTTPS")
Rel(gateway, orderSvc, "路由", "HTTP")
Rel(gateway, productSvc, "路由", "HTTP")
Rel(gateway, userSvc, "路由", "HTTP")
Rel(orderSvc, orderDb, "持久化", "SQL")
Rel(productSvc, productDb, "持久化", "MongoDB")
Rel(userSvc, userDb, "持久化", "SQL")
Rel(userSvc, cache, "缓存", "Redis")
Rel(orderSvc, payment, "扣款", "REST")
Rel(orderSvc, shipping, "发货", "REST")
### 多团队所有权
当不同的团队拥有微服务时,将每个微服务**提升为一个软件系统**:
mermaid
C4Context
title 电子商务平台 - 多团队
Person(customer, "客户", "在线购物者")
Person(admin, "管理员", "商店经理")
Enterprise_Boundary(company, "Acme Corp") {
System(orderSystem, "订单系统", "Alpha 团队 - 订单生命周期")
System(productSystem, "产品系统", "Beta 团队 - 目录管理")
System(userSystem, "用户系统", "Gamma 团队 - 身份与认证")
System(analyticsSystem, "分析系统", "Delta 团队 - 商业智能")
}
System_Ext(payment, "Stripe", "支付处理")
System_Ext(warehouse, "仓库系统", "履约合作伙伴")
Rel(customer, orderSystem, "下单")
Rel(customer, productSystem, "浏览产品")
Rel(admin, productSystem, "管理目录")
Rel(admin, analyticsSystem, "查看分析")