SuperAPI AI 工具集

shopify-reliability-patterns

部署与运维

查看项目

更新于 10-15 23:29

技能介绍

用途:构建容错的 Shopify 集成,应对 API 中断、Webhook 重试风暴和速率限制耗尽。前提需理解熔断器模式,具备队列基础设施(BullMQ、SQS 等)用于异步处理,以及缓存层用于回退数据。

主要能力与用法:第一步,用 opossum 为所有 Shopify API 调用包裹熔断器,错误率达 50% 时打开,仅计入 5xx 与超时错误;打开时返回缓存数据,30 秒后进入半开状态自动测试恢复。第二步,Webhook 幂等性:Shopify 在端点未返回 200 时最多重试 19 次、持续 48 小时,处理程序必须幂等,用 Redis 跟踪 X-Shopify-Webhook-Id 并设 7 天 TTL,始终在 5 秒内返回 200,再异步处理。第三步,优雅降级三级回退:先调实时 API(缓存结果),回退到缓存数据,再回退到替代数据源(如本地 DB),并记录数据来源以标记降级响应。第四步,用 BullMQ 将 Webhook 入队而非内联处理:先验证 HMAC,立即返回 200,再携 topic/shop/payload 元数据入队,worker 以指数退避处理(5 次重试)并做幂等检查。第五步,速率限制感知重试:遵循 Shopify 的 Retry-After 头(REST 429)和 GraphQL 节流状态恢复速率,依据可用点数计算最佳等待时间而非盲目退避。

输出:熔断器防止中断期间级联失败、幂等 Webhook 处理避免重复操作、缓存回退的优雅降级、基于队列的 Webhook 处理、速率限制感知重试逻辑。错误处理涉及熔断器长期打开、重复订单、队列无限增长、缓存过期等情形。资源包括熔断器模式、Opossum、BullMQ 文档与 Shopify Webhook 重试策略。