【发布时间】:2021-04-01 21:06:44
【问题描述】:
我正在尝试记录在 RabbitMQ 中发送消息期间发生的任何信息或异常,因为我尝试在现有连接工厂上添加 ConnectionListener。
kRabbitTemplate.getConnectionFactory().addConnectionListener(new ConnectionListener() {
@Override
public void onCreate(Connection connection) {
System.out.println("Connection Created");
}
@Override
public void onShutDown(ShutdownSignalException signal) {
System.out.println("Connection Shutdown "+signal.getMessage());
}
});
kRabbitTemplate.convertAndSend(exchange, routingkey, empDTO);
为了测试异常场景,我从 RabbitMQ 控制台取消绑定甚至删除了队列。但我没有得到任何异常或任何关闭方法调用。
虽然,当我停止 RabbitMQ 服务时,我得到了
Exception in thread "Thread-5" org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect
但是这个异常不是来自我添加的监听器。
我想知道
- 为什么我没有收到任何异常或来自关机方法的调用
- 如何使用 ConnectionListner 和/或 ChannelListner 记录消息传递的失败/成功。
- 我们可以使用 AMQP 附加程序吗?如果可以,我们该怎么做? (任何示例/教程)
- 还有哪些其他方法可以确保发送消息?
注意:我不想使用发布者确认的方法。
【问题讨论】:
标签: rabbitmq spring-amqp spring-rabbit