首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证失败spring-amqp超时

验证失败spring-amqp超时
EN

Stack Overflow用户
提问于 2016-10-10 14:38:06
回答 1查看 2.2K关注 0票数 1

我的用户工作了大约一个星期,然后使用者线程死了,并记录了以下错误:

身份验证失败似乎是由BufferedInputStream.read超时引起的,我想知道是否有一种方法可以将身份验证失败视为非致命的,并且不会杀死使用者线程。我认为超时问题只是由网络问题引起的,而不是身份验证失败,因为这个用户已经工作了一周。

代码语言:javascript
复制
org.springframework.amqp.rabbit.listener.exception.FatalListenerStartupException: Authentication failure
at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:460)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1171)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.amqp.AmqpAuthenticationException: com.rabbitmq.client.PossibleAuthenticationFailureException: Possibly caused by authentication failure
at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:61)
at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:296)
at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:524)
at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils$1.createConnection(ConnectionFactoryUtils.java:85)
at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.doGetTransactionalResourceHolder(ConnectionFactoryUtils.java:135)
at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.getTransactionalResourceHolder(ConnectionFactoryUtils.java:71)
at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:456)
... 2 more
Caused by: com.rabbitmq.client.PossibleAuthenticationFailureException: Possibly caused by authentication failure
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:341)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:824)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:736)
at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:283)
... 7 more
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error at com.rabbitmq.utility.ValueOrException.getValue(ValueOrExcept‌​ion.java:66) at com.rabbitmq.utility.BlockingValueOrException.uninterruptibl‌​eGetValue(BlockingVa‌​lueOrException.java:‌​36) at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.‌​getReply(AMQChannel.‌​java:366) at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.ja‌​va:233) at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:211) at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.j‌​ava:326) 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-10 15:01:23

目标代码如下所示:

代码语言:javascript
复制
} catch (ShutdownSignalException e) {
...
   throw new PossibleAuthenticationFailureException(e);
}

因此,实际上,没有必要将连接的问题与身份验证有关。

ShutdownSignalException就是Connection timed out的原因。

因此,您应该尝试增加连接超时,默认情况下这是60000

但是,由于我们无法连接,代理上的资源可能会出现一些问题。

我们不能将这种错误(ShutdownSignalException)视为非致命错误,因为您的问题恰好发生在start()上。

编辑

在发生致命故障的情况下,容器会发出ListenerContainerConsumerFailedEventreference.html#consumer-events。您可以故意处理它并重新启动容器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39960798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档