【问题标题】:how to check if queues of the RabbitMQ server is alive如何检查 RabbitMQ 服务器的队列是否处于活动状态
【发布时间】:2015-07-28 17:22:12
【问题描述】:
我对 Spring 框架完全陌生。我正在尝试创建一个 java maven 项目,我可以在其中连接到 rabbitMq,甚至在发布消息之前,我想检查队列是否处于活动状态。这是否可以 ping 队列以查看它是否还活着。我对这个 rabbitMQ 完全陌生。
感谢您的回答
【问题讨论】:
标签:
java
maven
rabbitmq
spring-jdbc
【解决方案1】:
检查队列的可用性有点像消息传递系统的反模式。
消息生产者不应该关心另一端是否有东西来接收/处理消息。生产者只关心 RabbitMQ 实例是否可用,并且交换正确。
如果消息必须保证传递给消费者,那么消费者需要在配置队列时考虑到持久性,并且生产者应该发送带有持久性标志的消息以确保将其写入磁盘。
...
重新阅读您的问题,我想知道您说“队列”时是否指的是“rabbitmq 服务器”。你想检查rabbitmq服务器是否可用吗?
如果是这种情况,正确的做法是在 RabbitMQ 连接中使用心跳。 spring 框架应该知道如何做到这一点,并且应该响应某种事件或在连接断开时执行的其他代码。不过,我对 spring 并不是很熟悉,所以我不知道用这个框架做这件事的细节。
您可以查看this post 或this RabbitMQ page 来处理此问题。