相关疑难解决方法(0)

RabbitMQ - 升级到新版本并获得了很多"PRECONDITION_FAILED未知交付标签1"

刚刚升级到RabbitMQ的新版本 - 2.3.1 - 现在出现以下错误:

PRECONDITION_FAILED unknown delivery tag 1  
Run Code Online (Sandbox Code Playgroud)

...随后关闭频道.这适用于较旧的RabbitMQ,没有客户端更改.


在应用程序行为方面:

当App A想要向App b发送异步消息并从B接收答案时,这是算法:

  1. 应用A生成唯一ID并将其放入消息对象中
  2. 然后,App A订阅一个新的队列,队列名称和路由键都等于uuid.
  3. 应用B打开消息,进行一些计算并使用收到的路径将结果返回到通道.
  4. 应用A获得答案并关闭队列.

到目前为止,1.7.0一切都很顺利.2.3.1出了什么问题?


当应用程序A调用时basicPublish(),应用程序B立即抛出以下异常:

com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method<channel.close>(reply-code=406,reply-text=PRECONDITION_FAILED - unknown delivery tag 1,class-id=60,method-id=80),null,""}
    at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:191)
    at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:159)
    at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:110)
    at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:438)
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method<channel.close>(reply-code=406,reply-text=PRECONDITION_FAILED - unknown delivery tag 1,class-id=60,method-id=80),null,""}
Run Code Online (Sandbox Code Playgroud)

rabbitmq

16
推荐指数
2
解决办法
1万
查看次数

标签 统计

rabbitmq ×1