用途:为请求/响应式 Web 服务提供系统设计层面的模式、故障模式与反模式参考,帮助在 API 风格、扩展方式、数据层与可观测性上做出选型决策。
主要能力: 一、API 模式。REST 适用于公开 API、浏览器面向服务、CRUD 密集且重视可发现性与可缓存性的场景;不适用于嵌套查询多(N+1)、实时双向通信、对载荷效率要求高的内部高吞吐调用。GraphQL 适用于多客户端不同数据形态、复杂嵌套关系、前端可独立迭代;不适用于简单 CRUD、服务间通信、需要 HTTP 层缓存或团队缺乏运维经验时。gRPC 适用于内部服务间通信、载荷与序列化效率敏感、强类型代码生成、流式场景;不适用于浏览器客户端、需人类可读调试、团队缺 protobuf 经验或公开 API。 二、扩展模式。水平扩展需无状态或外置状态,注意会话粘性、连接池耗尽、缓存一致性;垂直扩展适合数据库与内存型负载;自动扩缩容注意冷启动、扩缩延迟、最小实例数与成本失控;CDN 与边缘缓存注意失效、缓存投毒、TTL 调优;读副本注意复制延迟与读写一致性。 三、数据层。RDBMS 为结构化关系数据默认选择;文档库适合文档形态、schema 多变或免分片水平扩展;键值存储用于缓存、会话、限流、排行榜;搜索引擎用于全文检索、日志聚合与半结构化分析。 四、可观测性。结构化 JSON 日志并统一字段做跨服务关联;分布式追踪传播 trace ID,可用 OpenTelemetry;服务用 RED 方法、资源用 USE 方法;先定义 SLO/SLI 再决定测量内容。 五、故障模式。级联故障、连接池耗尽、惊群、重试风暴、内存泄漏、依赖故障,并给出超时、熔断、舱壁、抖动 TTL、指数退避加抖动等缓解手段。 六、反模式。分布式单体、上帝服务、话痨接口、共享可变状态、过早微服务、忽视冷启动。
使用方式与限制:本资料为设计指南,未提供安装命令、代码示例或具体价格信息,相关细节暂未提供。