从客户端错过了心跳,超时:30秒 - RabbitMQ

时间:2018-05-31 08:20:54

标签: node.js docker rabbitmq amqp

我对pub / sub使用rabbitmq。我有两个微服务通过rabbitmq交换相互通信。微服务1发布一些数据,微服务2消耗它。发布和订阅的速度非常低,每天100次。 rabbitmq从客户端随机丢弃" Missed heartbeats,超时:30s"。 这就是为什么我的应用程序错误输出" 队列关闭"。每当我重新启动队列时,服务都能够使用它并开始工作。

我正在使用docker和node来进行微服务。 rabbitmq npm包rabbitmq config实施。

这是我的{ "connection": { "server": [ "rabbitmq" ], "port": 5672, "vhost": "%2f", "timeout": 4000, "waitMin": 10000, "waitIncrement": 3000 }, "exchanges": [ { "name": "save-customer", "type": "topic", "persistent": true, "autoDelete": true }, { "name": "poison-ex", "type": "direct", "persistent": true, "durable": true, "autoDelete": true } ], "queues": [ { "name": "save-customer-q", "autoDelete": true, "subscribe": true, "deadLetter": "poison-ex" }, { "name": "poison-q", "noAck": false, "autoDelete": false, "durable": true, "poison": true } ], "bindings": [ { "exchange": "save-customer", "target": "save-customer-q", "keys": [ "send-customer-data" ] }, { "exchange": "poison-ex", "target": "poison-q", "keys": [] } ] }

root@ALIPL5126:/opt/hos-customer-service# docker logs opt_rabbitmq_1
2018-05-31 07:09:25.438 [warning] <0.26747.0> closing AMQP connection <0.26747.0> (192.168.16.5:45180 -> 192.168.16.2:5672):
missed heartbeats from client, timeout: 30s

这是rabbitmq服务器的日志

{{1}}

1 个答案:

答案 0 :(得分:0)

根据config docstheir heartbeats article,您可以尝试以下两种选择:

  1. 禁用心跳,强烈建议不要使用心跳(c),但肯定可以。
  2. 增加配置中的默认心跳时间,例如为3600(以秒为单位,等于1小时)