RabbitMQ确认超时

oipij1gg  于 2022-11-23  发布在  RabbitMQ
关注(0)|答案(2)|浏览(323)

我使用RPC模式来处理我的对象与RabbitMQ。
你怀疑,我有一个对象,我想让这个过程结束,
之后,向RPC客户端发送确认。
默认情况下,确认的超时时间约为3分钟。
我的过程需要很长时间。
我如何更改每个对象的确认超时,或者我必须做什么来处理这些类似的进程?

kgsdhlau

kgsdhlau1#

RabbitMQ的现代版本有一个传递确认超时:
在现代的RabbitMQ版本中,在使用者交付确认时强制执行超时。这有助于检测从不确认交付的错误(卡住)使用者。此类使用者可能会影响节点的磁盘数据压缩,并可能导致节点磁盘空间不足。
如果用户未确认其传送的时间超过超时值(默认为30分钟),则其通道将关闭,并出现PRECONDITION_FAILED通道异常错误。用户连接到的节点将记录此错误。
错误消息将为:
连接〈####〉时发生通道错误:操作none导致通道异常precondition_failed:通道1上的用户确认超时
默认超时为30分钟(1,800,000ms)注1,由rabbitmq.conf中的consumer_timeout参数配置。
注1:超时时间为15分钟(900,000ms)before RabbitMQ 3.8.17

dzjeubhm

dzjeubhm2#

如果您在Docker中运行rabbitmq,您可以使用文件rabbitmq.conf描述卷,然后在卷内创建该文件并设置consumer_timeout,例如:
Docker 组成

version: "2.4"
services:
  rabbitmq:
    image: rabbitmq:3.9.13-management-alpine
    network_mode: host
    container_name: 'you name'
    ports:
        - 5672:5672
        - 15672:15672 ----- if you use gui for rabbit
    volumes:
        - /etc/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf

您需要创建文件
rabbitmq.conf
在您的服务器上
/等等/兔子mq/
文档参数:https://github.com/rabbitmq/rabbitmq-server/blob/v3.8.x/deps/rabbit/docs/rabbitmq.conf.example

相关问题