用途:在微服务架构设计阶段使用,覆盖单体拆分、新项目架构设计、服务间通信选型(HTTP/gRPC/MQ)、API 网关、服务发现与注册、配置中心、分布式事务。
核心原则:单体优先(团队小于 30 人大概率不需要微服务);按业务域而非技术层拆分;每个服务独立数据库;接口契约先行;异步优于同步;分布式场景追求最终一致而非强一致。折中方案为模块化单体。
拆分方法:基于 DDD 限界上下文,识别核心域/支撑域/通用域,每个限界上下文对应潜在服务,聚合根作为数据一致性边界。资料给出典型电商拆分示例(用户、商品、订单、支付、通知、搜索、文件服务)。
通信模式:HTTP REST 适合通用跨语言;gRPC 适合内部高性能通信;消息队列适合异步解耦与削峰;事件驱动用于领域事件广播。同步查询用 REST/gRPC,可异步的命令用 MQ,一对多事件用 Event Bus/Kafka。
API 网关功能包括路由、统一 JWT 认证、限流、熔断、日志与 traceId、CORS、版本管理;工具选型列出 Kong、APISIX、Traefik、Nginx、Spring Gateway、Express Gateway。
分布式事务方案:本地消息表、最终一致(MQ)、Saga、TCC;推荐多数场景用本地消息表加 MQ 加重试,并保证幂等。
限制与注意:资料未提供具体安装命令、代码示例或价格信息。需避免过早拆分、共享数据库、过长同步调用链、缺少幂等与熔断、强一致执念、缺少链路追踪、无网关、配置硬编码、日志不统一等常见问题。配套模板为 templates/microservice-design-template.md。