Я использую 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