引言:什么是Webhooks,为什么我们应当关心。

webhook1.png
图: 一个简单的流程图,左边是 Event 源 App,右边是 Event 接收 App,箭头表示通过 Webhook 请求主动讲事件推送过去

Webhooks 是用户定义的的 HTTP 回调:一种以 Event 通知的方式,由 Event 源 App 通过 HTTP POST 向 Event 接收 App 推送 Event 通知的一种方法。这种工作方式与常规 API 调用有些许不同, 和消息中间件有些许相似:

常规 APIWebhooks消息中间件
工作方式Event接收App主动向Event源App发送请求,尝试获取最新的数据Event源App有更新时主动推送Event给Event接收App两个 App 间的 Message 的传递、转换等功能
实时性数据实时性/一致性取决于API请求频次数据保持实时更新数据保持实时更新
资源消耗无论源 Event App 侧是否存在数据更新,Event 接收 App 都要进行 API 请求,浪费资源只有在发生特定的事件时,才需要处理和传递Event只有在发生特定的事件时,才需要处理和传递Message

Webhooks的实施并非易事,因为需要考虑多个因素:

问题描述解决方案
安全性Fake请求攻击、重放攻击。请求签名(Request Signture)、传输加密(https)、API白名单(whilelist)、timestamp验证(五分钟以外请求不处理))、幂等(重复请求不会重复处理)等。
失败处理需要考虑服务器宕机、网络故障、Event 接收 App 发版、Endpoint 临时不可用 等因素可以引入重试、重放等机制
投递保证确保每个请求都能被正确及时地传送到预定的Endpoint最多一次,至少一次,只有一次三种模式。
测试需要确认 Webhooks 在实际环境中的表现手动测试和自动化测试。可以使用函数猫来模拟和测试Webhook。

下一讲,我们将深入研究使用Webhooks的好处:实时性、高效性、以及自动化。希望你继续跟随我们一起,揭开Webhooks带来的无尽可能性的神秘面纱。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值