微服务架构设计
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/microservices-design-o6lp
技能介绍
微服务设计的常见陷阱
在拆分微服务时,团队常陷入几个典型误区:按技术分层拆分导致服务边界模糊,多个服务共享同一个数据库造成紧耦合,或者过度依赖同步HTTP调用引发级联失败。这些问题会让原本追求灵活的微服务架构变成难以维护的分布式单体,部署和扩展都变得举步维艰。
核心设计能力
服务边界的确定
该技能强调围绕业务能力定义服务边界,而非技术分层。每个服务需要拥有独立的 data store,并通过明确的API契约对外暴露能力,确保服务间的数据所有权清晰,避免共享数据库的紧耦合问题。
事件驱动与容错机制
- 在异步通信中,使用
eventId作为幂等键,确保事件处理器能安全处理重复投递的消息。 - 多服务事务采用 Saga编排模式,通过补偿操作实现最终一致性,替代容易失败的分布式事务。
- 引入断路器模式保护服务间调用,防止级联失败扩散到整个系统。
- 通过
API Gateway统一处理路由、限流和认证,简化客户端与后端服务的交互。
健康检查与独立部署
每个服务需提供健康检查端点,实时上报依赖状态;同时确保服务可以独立部署和扩展,这是微服务架构的核心优势之一。
适用边界与注意点
该技能主要适用于业务复杂度中等以上、需要横向扩展的分布式系统。对于小型单体应用或团队规模较小的场景,微服务带来的运维成本可能超过收益。此外,Saga模式的补偿逻辑会增加开发复杂度,需要在业务允许最终一致性的前提下谨慎使用,避免过度设计。
使用场景
- 系统从单体拆微服务,围绕业务能力划分服务边界
- 异步链路处理重复事件,按 eventId 设计幂等
- 订单跨多服务落库,用 Saga 编排补偿失败
- 外部流量接入 API 网关,配置熔断和限流
适合人员
- 后端架构师:拆分服务边界并明确数据归属
- SRE 工程师:设计幂等、熔断和健康检查
- 支付订单工程师:用 Saga 实现跨服务一致性
- API 网关负责人:规划路由、认证与限流策略