gpt4 book ai didi

rabbitmq - PubSub + 可靠的消息传递给不可靠的订阅者

转载 作者:行者123 更新时间:2023-12-04 18:50:47 25 4
gpt4 key购买 nike

我需要构建一个使用 Publish/Subscribe 总线(例如 Mule、ZeroMQ、RabbitMQ)的系统,但文献都暗示订阅者应用程序可以可靠地接收来自他们订阅的主题的消息,只要 Pub/Sub 总线能够传递消息。

我有一个系统,其中一些应用程序将可靠地连接到发布/订阅总线,但其他应用程序不会一直处于事件状态或连接到总线。

显而易见的解决方案是在不可靠的应用程序和发布/订阅总线之间建立某种“存在”协议(protocol),以便“存在”应用程序立即传递它们的消息,而“不存在”应用程序将它们的消息排队在持久缓冲区中某种形式的,一旦他们完成“在线握手”,排队的消息就会被传递给新出现的应用程序。

是否有任何发布/订阅总线内置了这种功能,或者是否有任何开源插件可以做到这一点?你能指出任何描述这一点的网址吗?

最佳答案

您可以使用任何符合 AMQP 的代理(例如 RabbitMQ)轻松实现此行为。

为您的使用模式选择正确的交换类型。您需要使用 direct如果您总是发送到绝对指定的目的地,例如 chat.messages .

如果你想做基于模式的路由,你会想要使用 topic交换。然后您可以根据 chat.messages.* 等模式进行路由.

RabbitMQ Tutorials 中更详细地描述了路由。 .

要创建您提到的那种持久订阅,请让每个订阅者创建一个该订阅者专用的队列。然后,队列将绑定(bind)到您选择的交换机上的相关路由键。

由于每个订阅者都有自己的队列,消息将在订阅者处于事件状态时被订阅者消费,而在订阅者处于非事件状态或断开连接时被存储。

关于rabbitmq - PubSub + 可靠的消息传递给不可靠的订阅者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6507974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com