首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RabbitMQ消息传递-正在初始化使用者

RabbitMQ消息传递-正在初始化使用者
EN

Stack Overflow用户
提问于 2012-05-14 22:44:39
回答 2查看 3.7K关注 0票数 4

我想使用RabbitMQ不断地将对象的状态广播给任何可能正在收听的消费者。我想设置它,这样当消费者订阅时,它将获得最后一个可用状态……这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-14 23:37:00

使用自定义的last value缓存交换:例如https://github.com/squaremo/rabbitmq-lvc-plugin

上一个值缓存exchange

这是一个使用RabbitMQ的可插拔交换类型特性的最后一个值缓存的非常简单的实现。

最后一个值缓存旨在解决如下问题:假设我正在使用消息传递向客户端发送一些值更改的通知;现在,当一个新的客户端连接时,它不会知道值,直到它发生更改。

最后一个值交换的作用类似于直接交换(将绑定键与路由键进行等价性比较);但是,它还跟踪与每个路由键一起发布的最后一个值,并且当绑定队列时,它会自动将绑定键的最后一个值入队。

票数 6
EN

Stack Overflow用户

发布于 2012-05-14 23:10:21

使用Recent History Custom Exchange可以做到这一点。它说它将把最后20条消息放在队列中,所以如果它是可配置的,你可以将其更改为最后1条消息,这样就完成了。

如果这不起作用,即数量固定为20,那么您可能不得不处理队列中的前19条消息,并从第20条消息中获取状态。这是一个有点烦人的工作,但您知道参数始终是20,这应该是好的。

最后,如果这不适合你,你可能会设置你的消费者等待,直到第一个状态是接收,假设状态是相当频繁的广播。收到第一个状态后,启动应用程序的其余部分。我在这里假设您在执行其他操作之前需要了解状态。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10585598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档