我正在使用spring,如果失败,我想重试获取与RabbitMQ和MongoDB的连接 我知道它对sql数据库有用:https://github.com/spring-projects/spring-boot/issues/4779#issuecomment-305482782
但是我不知道要为RabbitMQ和MongoDB包装哪些类。
我还试图为RabbitMQ包装ConnectionFactory,但是AbstractConnectionFactory有一些最终的方法我无法覆盖以将调用传递给委托工厂。
答案 0 :(得分:2)
对于RabbitMQ,在消费者方面,连接将根据侦听器容器配置自动恢复(默认情况下,它将每5秒尝试重新连接)。
对于发布消息,您可以在RetryTemplate
中配置适当配置的RabbitTemplate
(来自弹簧重试)。
对于Mongo,您可以在代码中使用RetryTemplate
或@Retryable
注释。