问题描述
我有一个Spring Boot应用程序,该应用程序连接到RabbitMQ集群(作为Cloud Foundry中的一项服务)。当群集中的主节点发生故障时,由于某种原因该节点无法启动,但是应用程序(消息使用者)尝试连接至故障节点,并且不尝试连接至其他可用节点。有人可以建议一些弹簧配置来解决此问题吗?
17:36:23.829: [APP/PROC/WEB.0] Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404,reply-text=NOT_FOUND - home node '[email protected]' of durable queue 'FAILED_ORDER' in vhost '/' is down or inaccessible,class-id=50,method-id=10)
'[email protected]'是失败的节点。
为了在失败时继续尝试连接到节点,我具有以下spring配置。 spring.rabbitmq.listener.simple.missing-queues-fatal = false
@Configuration
public class MessageConfiguration {
public static final String FAILED_ORDER_QUEUE_NAME = "FAILED_ORDER";
public static final String EXCHANGE = "directExchange";
@Bean
public Queue failedOrderQueue(){
return new Queue(FAILED_ORDER_QUEUE_NAME);
}
@Bean
public DirectExchange directExchange(){
return new DirectExchange(EXCHANGE,true,false);
}
@Bean
public Binding secondBinding(Queue failedOrderQueue,DirectExchange directExchange){
return BindingBuilder.bind(failedOrderQueue).to(directExchange).with(FAILED_ORDER_QUEUE_NAME);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)