gpt4 book ai didi

rabbitmq - Spring-amqp 两个 TTL 不同的队列

转载 作者:行者123 更新时间:2023-12-04 00:30:29 26 4
gpt4 key购买 nike

在我们的应用程序中,我们使用 RabbitMQ 和 spring-amqp(1.4.3.RELEASE)。
我们在那里有两个队列。它们都配置了 TTL(60000 和 100000)。
当我们启动应用程序时,它会出现以下错误:

[pool-4-thread-1] ERROR org.springframework.amqp.rabbit.connection.CachingConnectionFactory - Channel shutdown: channel error; protocol method: #method(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'x-message-ttl' for queue 'queue1' in vhost '/': received '60000' but current is '100000', class-id=50, method-id=10)



然后当我们尝试向队列发送消息时抛出异常:

[http-nio-8080-exec-8] ERROR [P181786EJG755SN8I3S74584216UV1] No reply received - perhaps a timeout in the template? org.springframework.remoting.RemoteProxyFailureException: No reply received - perhaps a timeout in the template? at org.springframework.amqp.remoting.client.AmqpClientInterceptor.invoke(AmqpClientInterceptor.java:60) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy83.getUserById(Unknown Source)



在网上搜索,结果如下:

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的。

最佳答案

我找到了问题,它与错误的配置有关。
因此,要解决此问题:

  • 检查,Rabbit-Server 中声明的 Queue 在 spring-configurations 中具有相同的参数。
    好消息是从兔子中完全删除队列并启动应用程序。
  • 在应用程序中可能有几个地方可以声明队列。检查它们是否都具有相同的参数。如果它们具有不同的参数,则可能会导致问题(这就是我的情况)。
  • 关于rabbitmq - Spring-amqp 两个 TTL 不同的队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28744165/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com