每日整理真实提问 356 个问题 · 726 个回答 需要系统性的技术文档?看 Shopify 技术百科 1000 篇 → 400-873-8117
已解决 提问于 6 天前

Webhook 老是丢几条,Event Bridge 值不值得上

2 个回答 2,280 次浏览 Webhook 与事件 最后活跃 6 天前
20

每天几千条 webhook,总有个位数收不到。加了重试也没用,因为根本没请求进来。老板问要不要换 Event Bridge。

泽
阿泽提问者
前端工程师 · Hydrogen / Storefront API
6 天前提问 · 已收到 2 个回答

2 个回答

已采纳 · 提问者确认解决
80

先定位是哪一段丢的:订阅没有创建、投递失败、还是你的服务收到但没处理成功。三种情况里只有第一种是「真的没发」,而它通常是订阅被自动删了。

1处理顺序

  1. 查订阅是否还在:连续失败后 Shopify 会删除订阅,重新安装应用或换 token 也会丢订阅。用 webhookSubscriptions 查询比对预期列表。
  2. 把「至少一次投递」当默认:同一条事件可能到两次,用 X-Shopify-Webhook-Id 做幂等,不要用订单号。
  3. 兜底一:定时补偿。每小时用 GraphQL 按 updated_at 拉一次增量,把漏掉的事件补回来,这是最便宜也最有效的方案。
  4. 兜底二:Event Bridge 把事件推到 Google Cloud Pub/Sub,由订阅方消费,可靠性和削峰都更好,但开通有资格限制、运维成本也更高。
  5. 监控:给「事件 ID 序号」做断号告警(同一 topic 的小时级计数骤降 30% 就报),比等客户投诉早半天发现问题。
验收:连续运行 7 天,断号告警为 0,补偿任务补回的事件全部幂等处理,没有重复入账。
风 风格技术团队 · Shopify 官方合作伙伴 · 11 年建站经验 · 6 天前
13
年 GMV 千万级以下,补偿拉取足够用,Event Bridge 的复杂度不划算;订单/库存强一致的场景才值得上。
镇 小镇 · Shopify Plus 架构顾问 · 跨境多市场 · 6 天前

你的处理方式是什么?

写下你实际验证过的步骤,比「我也有这个问题」有用得多。当前版本为静态展示,提交后会由团队整理并回复。

描述你遇到的现象、店铺环境(主题 / 套餐 / 应用)、已经试过哪些操作……
我要单独提问 工作日 10 分钟内回复,可直接加微信 fenggejishu