如何在本地重现Rabbitmq已关闭异常
问题描述:
我有以下代码将消息发布到RabbitMQ。我在生产中有时会遇到AlreadyClosed异常。我想在本地机器(即DEV服务器)中重现相同的问题。任何想法如何重现它?如何在本地重现Rabbitmq已关闭异常
AMQP.BasicProperties.Builder props = new AMQP.BasicProperties().builder();
props = props.deliveryMode(2).headers(headers);
rabbitChannel.getChannel().basicPublish(exchangeName, routingKey,
props.build(), rabbitMessage.serialize());
答
在调试代码时明确关闭连接,然后您将能够在本地重现它。
答
您可以通过管理Web UI手动关闭连接。
如果您想创建一个集成测试,在连接断开时测试应用程序的行为,那么您可以通过HTTP API以编程方式关闭连接。我对RabbitMQ的本地实例运行集成测试,只需通过API请求所有打开的连接,然后在每个实例上调用DELETE。
您可以在管理Web UI中执行此操作。选择连接并单击强制关闭 – Vanlightly