Пропущенные сердцебиения от клиента, время ожидания: 30 с - RabbitMQ - PullRequest
0 голосов
/ 31 мая 2018

Я использую rabbitmq для паба / саб.У меня есть два микро-сервиса, которые общаются друг с другом через rabbitmq обмен.Микро-сервис1 публикует некоторые данные, а микро-сервис2 использует их.Скорость публикации и подписки очень меньше, примерно 100 раз в день.rabbitmq случайным образом выбрасывает «Пропущенные сердцебиения от клиента, время ожидания: 30 с».Вот почему мое приложение выдает ошибку « завершение очереди ».Всякий раз, когда я перезапускаю очередь, сервисы могут ее использовать и начинают работать.

Я использую докер и узел для микросервисов.и https://www.npmjs.com/package/rabbot npm для реализации rabbitmq.

Это мой 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": []
    }
  ]
}

Вот журнал сервера rabbitmq

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
...