Dmi*_*nov 4 rabbitmq spring-amqp
在我们的应用程序中,我们使用 RabbitMQ 和 spring-amqp(1.4.3.RELEASE)。我们那里有两个队列。它们都配置了 TTL(60000 和 100000)。当我们启动应用程序时,它会出现以下错误:
[pool-4-thread-1] 错误 org.springframework.amqp.rabbit.connection.CachingConnectionFactory - 通道关闭:通道错误;协议方法:#method(reply-code=406,reply-text=PRECONDITION_FAILED - vhost '/'中队列'queue1'的不等价参数'x-message-ttl':收到'60000'但当前为'100000',类-id=50,方法id=10)
然后当我们尝试向队列发送消息时会抛出异常:
[http-nio-8080-exec-8]错误[P181786EJG755SN8I3S74584216UV1]没有收到回复 - 可能是模板超时?org.springframework.remoting.RemoteProxyFailureException:未收到回复 - 可能是模板超时?在 org.springframework.amqp.remoting.client.AmqpClientInterceptor.invoke(AmqpClientInterceptor.java:60) 在 org.springframework.aop.framework.ReflectiveMethodInvocau.proceed(ReflectiveMethodInitation.java:179) 在 org.springframework.aop.framework.JdkDynamicAopProxy .invoke(JdkDynamicAopProxy.java:207) 在 com.sun.proxy.$Proxy83.getUserById(来源未知)
在网上搜索得到的结果如下:
http://forum.spring.io/forum/spring-projects/integration/amqp/124865-unexpected-behaviour-with-rabbit-admin 特别是这个错误: https: //jira.spring.io/browse/AMQP -266
发现该错误后,我们将两个队列的 TTL 值更改为 60000,并且不再显示错误。并且应用程序运行良好。所以,看来TTL还是有一个bug。
我发现了这个问题,它与错误的配置有关。因此,要解决此问题: