通过RabbitMQ中的属性或标题获取消息

时间:2019-05-07 07:03:56

标签: rabbitmq message-queue messaging

我是RabbitMQ的新手,但遇到了问题。我正在尝试通过API方法从队列中获取消息。我已经做到了,如果可能的话,我现在想按标题或属性从队列中获取消息。我阅读了有关HTTP API的文档。我找不到用于通过某些标头或属性过滤消息的API。

我使用这种API从队列中获取消息:

Board requestedBoard = ...;
Board availableBoard = ...;
if (requestedBoard.isLessOrEqualTo(availableBoard)) {
  ...
}

并在正文中:

/api/queues/vhost/name/get

我在想,也许可以通过某种方式在体内传递一些过滤器,以便它可以过滤并返回我想要的消息。

这是我的信息的样子: enter image description here

我尝试传递{"count":20,"ackmode":"ack_requeue_true","encoding":"auto"} type = "myType"正文

1 个答案:

答案 0 :(得分:1)

  

我已经确定,现在我想按标题或从队列中获取消息   属性。

RabbitMQ仅按顺序从队列传递消息。一旦消息进入队列,就无法进行过滤。

但是,您可以过滤发布到交易所的消息。使用标头交换并根据标头值绑定队列。然后,每个队列将包含您期望的消息,然后您可以从中使用它们。

RabbitMQ教程的一部分使用“标题交换”。以此为指导。

最后,仅使用HTTP API进行测试。这是一种检索消息的低效方式。


注意: RabbitMQ团队监视rabbitmq-users mailing list,并且有时仅在StackOverflow上回答问题。