到达队列消息后注册监听器

时间:2015-10-28 10:44:03

标签: java spring-boot rabbitmq

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

1 个答案:

答案 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);
    }
}