2015-10-28 51 views
0

我有兩個使用Rabbit MQ進行通信並作爲單獨WAR進行部署的微服務。如果服務1提供消息稱爲msgS1到隊列中,但在那一刻客服2不通(我的隊列是直接和我使用的消息交換路由鍵),然後當我啓動我的服務2,它才能接收來自隊列的消息msg1?目前我收到Null。什麼是正確的方法呢?在消息到達隊列後註冊監聽器

回答

0

它應該,因爲所有消息都存儲在RabbitMQ服務器隊列中。然後,你的第二個應用程序可以從中獲得它們。要接收消息,應該在Spring Boot應用程序中正確配置隊列偵聽器。

如果您可以提供您使用的監聽器的片段,那會更好。

然而,你可以找到很好的例子here

另外,這裏是基於註解聽者的示例:

@EnableRabbit 
@Component 
public class RabbitMqListener { 
    Logger logger = Logger.getLogger(RabbitMqListener.class); 

    @RabbitListener(queues = "queue1") 
    public void processQueue1(String message) { 
     logger.info("Received from queue 1: " + message); 
    } 
}