用途:指导微服务架构设计,围绕业务能力划分服务边界、设计事件驱动通信、处理跨服务事务,并提供网关与健康检查等实践要点。
主要能力:
- 服务边界:按业务能力而非技术分层划分服务,每个服务拥有自己的数据存储并暴露清晰 API 契约;示例中 order-service 拥有 orders 表并发布 OrderCreated 事件,inventory-service 订阅该事件,notification-service 为无状态服务。
- 事件驱动通信:定义 DomainEvent 结构(eventId、eventType、aggregateId、timestamp、version、payload),通过 broker 发布与订阅,并使用幂等键(eventId)安全处理重复投递。
- Saga 模式(编排式):以 OrderSaga 组织 reserveInventory、processPayment、confirmOrder 等步骤,每步含 execute 与 compensate,失败时逆序补偿。
- API 网关模式:以 Kong 等网关配置路由、限流、JWT 与 correlation-id 等插件。
- 健康检查模式:暴露 /health 端点检查数据库、缓存、消息代理,全部正常返回 200,否则 503,并报告版本与 uptime。
使用方式:资料以概念说明与 TypeScript/YAML 示例给出各类模式的写法,未提供安装命令或工具调用方式,相关约定暂未提供。
适用场景:需要可独立部署、独立扩展的微服务系统,尤其是订单、库存、支付、通知等异步协作流程。
限制与注意:避免服务间共享数据库导致紧耦合;避免同步 HTTP 链式调用引发级联失败;避免分布式单体;服务间调用应加熔断器;事件处理需幂等;多服务事务应使用 Saga 而非分布式事务。资料未说明具体运行时、broker 产品、收费或效果,暂未提供。