【发布时间】:2017-03-24 17:56:27
【问题描述】:
我有一个 Java 程序,它使用 RabbitMQ Java 客户端库读取和写入 RabbitMQ 队列。
我正在考虑对进程应用立即关闭策略,即,一旦库抛出异常,进程就会自动停止。
从交付可靠性的角度来看,这会导致任何问题吗?
除了读/写方法抛出的IOException、TimeoutException和InterruptedException之外,客户端代码还可以通过异常处理程序处理一些异常情况(可以使用ConnectionFactory.setExceptionHandler()设置)。
对于这种情况,请考虑持久(非瞬态)消息,并且必须确认每条已发布的消息。
【问题讨论】:
-
我不明白为什么人们会因为基于意见而投票决定关闭。根据我的理解,这是非常客观的,使用 Java 客户端这种方法可能会导致问题,也可能不会。