繁体   English   中英

如何在 java 中为 Rabbit MQ 创建同步消费者 API 以从队列中获取消息

[英]How to create Synchronous consumer API for Rabbit MQ in java to fetch message from the Queue

我想要一个同步 API 用于 java 中的 Rabbit MQ,例如 QueueingConsumer,以便我可以从 Rabbit MQ 获取消息。 但是 QueueingConsumer 现在已被弃用。 谁能告诉我如何写一个我自己的。

同步消费者的原因 - 我正在编写 REST 服务,该服务将从队列中获取消息并将其作为响应返回。

、据我了解,您使用的是rabbitmq java 客户端。 在这种情况下,您应该执行以下操作:

  1. 生成correlationId标识,回复属性replyTo
  2. 创建/获取目标队列/交换(您的目标);
  3. 创建/获取响应队列(您的响应队列);
  4. correlationIdreplyTo添加到您的消息中;
  5. 通过channel.basicPublish()将您的消息发送到队列/交换(您的目的地);
  6. 通过channel.basicConsume()订阅响应队列;
  7. 您何时会通过channge.basicConsume()获得响应消息,只需检查传入消息的correlationId ID。
  8. 如果correlationId匹配——返回收到的消息;

完整的代码示例在这里

您也可以在此处找到您问题的全面答案。

如果您需要现成的解决方案,我认为您可以使用Spring AMQP库或任何其他高级库。 可以在此处找到库列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM