rabbitmq Webhook(推送)与异步队列(推送)体系结构[已关闭]

r8xiu3jd  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(388)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以用事实与引用来回答.

两个月前关门了。
Improve this question
在构建webhook时,这是webhook使用者的最佳实践(例如webhook的接收者)立即将收到的任何消息丢弃到队列中,以防止它“备份”后续消息的传递。这似乎是多年来有关webhook体系结构的“最佳实践”。如今,随着互联网可访问队列的出现(例如Amazon SQS),为什么我们不翻转webhook架构上的脚本,让使用者负责从队列中“拉”出消息,而不是通过http post接收消息?
是的,这本质上不再是一个“webhook”,但是概念是一样的。这里要解决的问题是,使用者希望“知道”另一个系统中发生的事件。为什么不让这些事件的发布者将所有相关事件存储在一个专用于单个使用者的队列中,这样使用者就可以在自己的空闲时间、节奏,等等。我看到了许多好处,主要是将责任转移给了使用者,让他们根据自己的能力将消息“出队”。发布者尽可能快地将消息放入队列,使用者尽可能快地将消息拉离队列。如果使用者由于任何原因而出队,消息仍将在队列中保留所需的时间。2一旦消费者恢复,他们可以继续提取消息。3在这种情况下,消息永远不会丢失。4对吗?

0aydgbwb

0aydgbwb1#

在我看来,这主要是一种观点,不一定是最终的答案。
虽然从理论上讲,主张由生成器将消息直接推送到队列中是有道理的,在现实世界中,这些生成器会受到一些限制。每个消息传递系统都有一些细微差别。这意味着生成器必须了解这些细微差别,以便能够向各种消息传递服务发布消息。身份验证是另一个细微差别。所有这一切都变成了一个噩梦,任何生产者发出通知给各种消费者。这是webhook已经解决了。无处不在,建立协议,认证,等等。

相关问题