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