簡體   English   中英

Spring Rabbitmq和UI層或托管bean

[英]spring rabbitmq and UI layer or managed bean

我有一個Rabbitmq偵聽器作為單獨的類和JSF 2托管bean。

在我的bean中,我發送了一條消息,需要等待結果。 我不能使用sendAndReceive ...,因為我將消息發送到一個隊列,但從另一個隊列接收,所以我在發送之前分配了correlationId。

因此,我需要異步等待,需要等待正確的消息到達偵聽器。 如何在rmq中完成?

查看javadoc和RabbitTemplate的來源 ,看來他在回復隊列中等待響應。 您是否在郵件中設置了“回復”屬性? 如果是,則RabbitTemplate sendAndReceive方法應等待“回復”隊列中的響應。 確保正確填充replyTo字段並進行測試。

旁注:在RabbitMQ中,您不會將消息發送到隊列。 您將消息發送到交易所。 交換使用綁定將消息路由到隊列。 使用默認或直接交換類型,看起來就像您直接發送到隊列,但這過於簡單了。

有關詳細信息,請參見https://www.rabbitmq.com/tutorials/amqp-concepts.html

編輯:似乎在AMQP 1.4.5.RELEASE https://spring.io/blog/2015/05/08/spring-amqp-1-4-5-release-and-1-5中對此有一些修復-0-M1-可用

可配置的交換/路由密鑰以進行答復

以前,當在RabbitTemplate中使用請求/答復消息傳遞時,答復被路由到默認交換並以隊列名進行路由。 現在可以使用特定的交換和路由密鑰以形式為exchange / routingKey的形式提供回復地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM