我是RabbitMQ的新手,但遇到了问题。我正在尝试通过API方法从队列中获取消息。我已经做到了,如果可能的话,我现在想按标题或属性从队列中获取消息。我阅读了有关HTTP API的文档。我找不到用于通过某些标头或属性过滤消息的API。
我使用这种API从队列中获取消息:
Board requestedBoard = ...;
Board availableBoard = ...;
if (requestedBoard.isLessOrEqualTo(availableBoard)) {
...
}
并在正文中:
/api/queues/vhost/name/get
我在想,也许可以通过某种方式在体内传递一些过滤器,以便它可以过滤并返回我想要的消息。
我尝试传递{"count":20,"ackmode":"ack_requeue_true","encoding":"auto"}
或type = "myType"
正文
答案 0 :(得分:1)
我已经确定,现在我想按标题或从队列中获取消息 属性。
RabbitMQ仅按顺序从队列传递消息。一旦消息进入队列,就无法进行过滤。
但是,您可以过滤发布到交易所的消息。使用标头交换并根据标头值绑定队列。然后,每个队列将包含您期望的消息,然后您可以从中使用它们。
RabbitMQ教程的一部分使用“标题交换”。以此为指导。
最后,仅使用HTTP API进行测试。这是一种检索消息的低效方式。
注意: RabbitMQ团队监视rabbitmq-users
mailing list,并且有时仅在StackOverflow上回答问题。