SuperAPI AI 工具集

microservices-patterns

编程与开发

查看项目

更新于 10-16 06:51

技能介绍

用途:该技能用于掌握微服务架构模式,包括服务边界、服务间通信、数据管理与韧性设计,适用于构建分布式系统。何时使用:将单体拆解为微服务、设计服务边界与契约、实现服务间通信、管理分布式数据与事务、构建韧性分布式系统、实现服务发现与负载均衡、设计事件驱动架构。

核心概念:一是服务拆分策略,可按业务能力(如 OrderService、PaymentService、InventoryService)或 DDD 子域(限界上下文映射为服务)划分,也可用绞杀者模式(Strangler Fig)从单体逐步抽取。二是通信模式,同步请求/响应可用 REST、gRPC、GraphQL;异步可用 Kafka 事件流、RabbitMQ/SQS 消息队列及发布订阅。三是数据管理,采用每服务独立数据库,避免共享库;跨服务事务用 Saga 模式,通过补偿动作与最终一致性实现。四是韧性模式,包括熔断器(快速失败防级联故障)、带指数退避的重试、舱壁隔离资源限制故障影响。

必要用法示例:REST 客户端重试可用 tenacity 的 @retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=10));熔断器可用 @circuit(failure_threshold=5, recovery_timeout=30);事件总线可基于 aiokafka 的 AIOKafkaProducer/AIOKafkaConsumer 实现发布与订阅。

适用场景:电商订单履约等需要跨服务编排的系统,可用 Saga 编排(创建订单、预留库存、支付、确认订单)并在失败时逆序补偿。

限制:资料未提供具体版本、性能指标、收费或平台要求;示例代码为示意,需结合自身技术栈调整。参考资料包括 references/service-decomposition-guide.md 和 references/communication-patterns.md。