我有Rabbit MQ代理,用于在服务之间异步通信。
服务A
正在向队列发送消息。我检查了队列,来自服务A的消息已经到达:
我正试图在
服务B
为了使用服务A产生的消息,我如下所述进行了验证,以检查服务B是否与RabbitMQ连接,并且似乎连接成功。
问题是服务B已成功启动,但它正在接收来自Rabbit MQ的消息。
以下是侦听器的实现:
@Slf4j
@Component
public class EventListener {
public static final String QUEUE_NAME = "events";
@RabbitListener(
bindings = {
@QueueBinding(
value = @Queue(QUEUE_NAME),
exchange = @Exchange("exchange")
)
}
)
public void handleTaskPayload(@Payload String payload) {
System.out.println(payload);
}
}
我在Rabbit MQ中验证了队列和交换信息,它们是正确的。
一切都正常工作,服务A或服务B中没有出现任何错误,这使得这个问题更难调试。
我试图从RabbitMQ的队列getMessage中检索消息,消息如下:
{"id":"1",:"name:"Test","created":null}
我将感谢为解决这一问题提供的任何帮助或指导。
顺致敬意,
Rando。
附笔
我创建了一个新的测试队列,如下所示,并发布了一些消息:
修改了如下侦听器代码,但仍然无法触发侦听器侦听队列事件:
@Slf4j
@Component
public class RobotRunEventListener {
public static final String QUEUE_NAME = "test";
@RabbitListener(
bindings = {
@QueueBinding(
value = @Queue(QUEUE_NAME),
key = "test",
exchange = @Exchange("default")
)
}
)
public void handleTaskPayload(@Payload String payload) {
System.out.println(payload);
}