Pra*_*ash 4 java google-app-engine webhooks
我遇到了称为 webhook 和发布者/订阅者的概念。在 webhook 中,每当依赖应用程序中发生更新时,第三方应用程序都会发送信息,第三方将向您的应用程序的提及 URL 发送 HTTP post 请求,在发布者和订阅者中,订阅者将注册主题,发布者在该主题上写入然后注册商(如第三方)将根据订阅的主题将信息发送给订阅者。
两者相似还是不同?
我很困惑有人可以解决这个问题吗?
lio*_*mon 10
好吧,从概念上讲,这两种方法都用于在事件发生时通知客户端。但实际上我会在两种不同的场景中使用它们。 网络钩子(来自维基百科):
Web 开发中的 Webhook 是一种使用自定义回调来增强或更改网页或 Web 应用程序行为的方法。这些回调可能由第三方用户和开发人员维护、修改和管理,这些用户和开发人员不一定隶属于原始网站或应用程序。“webhook”一词是 Jeff Lindsay 在 2007 年从计算机编程术语 hook 中创造出来的。
当您希望在第三方与后端服务器之间传送异步更改或更新时,Webhook 方法是相关的。
这意味着第 3 方需要为每个客户端注册 webhook 地址,并使用需要通信的信息触发 http 请求。
使用 webhook 的一些注意事项是,在 webhook 地址没有响应或任何给定的临时故障的情况下的故障处理,重试责任和处理由发布者完成。
以下是使用 webhook 方法的几个示例:
- SendGrid.com - 一种电子邮件服务,可让您通过 api 发送电子邮件和活动电子邮件。当您希望在后端公开 webhook 的一个示例是,如果您希望在每次用户取消订阅列表时收到通知。
- Braintree.com - 一个计费网关,可让您向客户收取他们在您网站上购买的产品的费用 - 例如,您在后端公开的网络钩子,以便在每次成功执行定期付款时收到通知
当谈到发布者/订阅者时,这更像是一种消息传递模式(来自维基百科):
在软件架构中,发布 - 订阅是一种消息传递模式,其中消息的发送者(称为发布者)不会将消息编程为直接发送给特定的接收者(称为订阅者),而是将已发布的消息分类到不知道哪些订阅者(如果有)的情况下, 可能有。类似地,订阅者表示对一个或多个类感兴趣并且只接收感兴趣的消息,而不知道有哪些发布者(如果有的话)。
优点
松散耦合
发布者与订阅者松散耦合,甚至不需要知道它们的存在。以主题为焦点,允许发布者和订阅者对系统拓扑保持无知。无论对方如何,每个人都可以继续正常运行。在传统的紧密耦合的客户端 - 服务器范例中,客户端无法在服务器进程未运行时向服务器发送消息,除非客户端正在运行,否则服务器也无法接收消息。许多 pub/sub 系统不仅将发布者和订阅者的位置解耦,而且还会在时间上解耦它们。中间件分析师使用此类发布/订阅系统的常用策略是取消发布者,以允许订阅者处理积压(带宽限制的一种形式)。
可扩展性
通过并行操作、消息缓存、基于树或基于网络的路由等,提供比传统客户端 - 服务器更好的可扩展性的机会。成为拥有数千台服务器共享发布/订阅基础架构的数据中心,当前的供应商系统通常会失去这种优势;在这些情况下,在高负载下发布/订阅产品的可扩展性是一项研究挑战。另一方面,在企业环境之外,发布/订阅范式已证明其可扩展性远远超出单个数据中心的容量,通过 RSS 和 Atom 等网络联合协议提供 Internet 范围的分布式消息传递。
缺点
发布/订阅系统最严重的问题是其主要优势的副作用:发布者与订阅者的分离。
我会推荐以下帖子以获取有关 pub/sub 的更多信息:
| 归档时间: |
|
| 查看次数: |
6216 次 |
| 最近记录: |