我有两个微服务,它们使用Rabbit MQ进行通信并部署为单独的WAR。如果 service1 向队列发送名为 msgS1 的消息,但此时Service2已关闭(我的队列为Direct,我使用路由密钥进行消息交换),然后一旦启动我的服务2是否能够从队列中接收消息msg1?目前我收到Null。这样做的正确方法是什么?
答案 0 :(得分: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);
}
}