用途:指导把系统拆分为独立服务并让它们可靠协作,涵盖拆分策略、通信模式、数据归属与防止级联故障的韧性模式。
主要能力:判断是否拆分单体及从何处入手;用限界上下文与领域驱动设计划定服务边界;在同步(REST/gRPC)与异步(事件)通信间选择;用 Saga 处理分布式事务(编排式与协同式);设计 API 网关与 BFF;应用熔断器、舱壁、重试;事件溯源与 CQRS;服务发现与负载均衡。
使用方式:先做单体/模块化单体/微服务决策,团队 1-8 人优先模块化单体,25 人以上且需独立部署再考虑微服务;拆分用绞杀者模式,经门面逐步引流、迁移数据、删除旧代码,一次只处理一个接缝。通信上,需要即时响应且可接受下游故障用同步,否则用事件或消息队列。熔断器状态为 CLOSED、OPEN、HALF-OPEN,示例用 opossum 配置 timeout、errorThresholdPercentage、resetTimeout 并设置 fallback。舱壁为每个下游服务分配独立连接池。
适用场景:多团队独立部署、不同部分扩缩容差异大、领域边界稳定且具备可观测性与自动化运维能力时。
限制:不适用于单体内部架构、Serverless 函数设计部署、Kubernetes 基础设施配置、服务网格配置(仅提及)及单服务性能优化。反模式包括分布式单体、同步调用链过长、共享数据库。资料未提供具体收费、价格与平台信息。