RabbitMQ消费端报:delivery acknowledgement on channel 5 timed out. Timeout value used: 1800000 ms. This t

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

场景

消费端日志控制台报如下错误

2022-11-25 13:18:29.354 ERROR 13368 --- [.15.178.36:5672] o.s.a.r.c.CachingConnectionFactory       :1575 - Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - delivery acknowledgement on channel 5 timed out. Timeout value used: 1800000 ms. This timeout value can be configured, see consumers doc guide to learn more, class-id=0, method-id=0)

分析

1、rabbitmq开启手动确认模式之后但是在消费消息之后没有确认导致
2、消息确认超时的间隔太短导致

解决

1、在消费端消费后无论消费正常还是异常都要ack确认

channel.basicAck(deliveryTag, false);
或
channel.basicNack(deliveryTag, false, false);
或
channel.basicReject(deliveryTag, false);

2、在 rabbitmq 服务端的配置文件中禁用或配置更长的超时时间

配置超时间隔

【1】进入 rabbitmq 容器cd 到 /etc/rabbitmq/ 目录

// 进入rabbitmq容器
docker exec -ti rabbitmq bash

//进入配置文件目录
cd /etc/rabbitmq/

【2】编辑 rabbitmq.conf 文件如果没有此文件请创建名为 rabbitmq.conf 文件

touch rabbitmq.conf

vim rabbitmq.conf

【3】把 consumer_timeout 属性加入文件中值(单位毫秒)设置更长一些默认30分钟

consumer_timeout = 1800000

禁用确认超时不建议这样做

1、编辑 rabbitmq.conf 文件在文件中添加如下内容

%% advanced.config
[
  {rabbit, [
    {consumer_timeout, undefined}
  ]}
].

参考官方介绍https://www.rabbitmq.com/consumers.html#acknowledgement-timeout

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: RabbitMQ

“RabbitMQ消费端报:delivery acknowledgement on channel 5 timed out. Timeout value used: 1800000 ms. This t” 的相关文章

『0003』 - Solidity合约结构(初识别状态变量、局部变量、构造函数、析构函数)

作者:黎跃春,什么是合约?在区块链上运行的程序,通常称为智能合约(Smart Contract)��。所以通常会把写区块链程序改称写智能合约。简单点来讲,合约就是运行在区块链上的一段程序。一个完整的合约pragma solidity ^0.4.4; contract Counter {...

maven中配置项目的jdk版本无效怎么排查 - 开发技术

这篇文章主要介绍了maven中配置项目的jdk版本无效怎么排查的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇maven中配置项目的jdk版本无效怎么排查文章都会有所收获,下面我们一起来看看吧。maven配置项目的jdk版本无效排查最近在配...

接口幂等性的几种简单解决方案-CSDN博客

1、接口幂等性是什么 接口幂等性并不是数学中的幂等,而是对于用户来说不论网络波动或者刷新页面后重新操作某个动作等,最终导致对同一接口产生多次请求, 但是对于用户而言并没有产生影响。也就是说重复多次操作的结果 = 一次操作的结果。 2、有哪些常见的...

文本文件读写

写入 #!/usr/bin/env python import os ls = os.linesep fname = raw_input('input a file name:') #get filename while True: if os.p...

UVa 270 / POJ 1118 Lining Up (计算几何)

270 - Lining UpTime limit: 3.000 secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&page=show_probl...

UVa 10780 Again Prime? No Time. (数论&素因子分解)

10780 - Again Prime? No Time.Time limit: 3.000 secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=467&p...