Webhook是“用户定义的 HTTP 回调”:
- 它们通常由某些事件触发(不是通常用用户操作人为触发的),例如将代码推送到存储库或发布到博客的评论;
- 当该事件发生时,源站点就向为 webhook 配置的 URL 发出 HTTP 请求。用户可以将它们配置为导致一个站点上的事件调用另一个站点上的行为。

- 接收端点可以选择保留一个已知来源的IP 地址列表,这些来源的请求将被接受。
- HTTP基本身份验证可用于对客户端进行身份验证。
- Webhook 可以包含有关事件类型的信息,以及用于验证 Webhook的共享机密或数字签名。
- 一个HMAC签名可以被包括作为一个HTTP标头。GitHub 和 Stripe 使用这种技术。
- Facebook 使用SHA-1签署他们的请求。
- 建立连接时可以使用相互 TLS 身份验证。然后端点(服务器)可以验证客户端的证书。
- 处理发送端和接收端的系统故障。
- 管理 HTTP 超时。
- 处理异常并重试请求,而不会让接收者不堪重负。
- 避免发送端的重试循环。
- 监控并提供手动干预的范围。
- 快速扩展系统;垂直或水平。
- 将 Webhook 管理逻辑与主要应用程序逻辑分离。
- FastAPI提供Uvicorn驱动的ASGI服务器。
- Redis和RQ用于实现消息队列,提供异步和健壮的故障处理机制。
- Rqmonitor提供一个仪表板,用于监控 webhooks 的状态并手动重试失败的作业。
- Rich:使容器日志丰富多彩,更人性化。