Я настраиваю кластер RabbitMQ (v3.8.0) с высокой доступностью.
Чтобы включить постоянство сообщений, я установил для параметров обмена и очередей durable значение True.
{
"exchanges": [
{
"name": "my_direct_exchange",
"vhost": "my_vhost",
"type": "direct",
"durable": true,
"auto_delete": false,
"internal": false,
"arguments": {}
}
],
"queues": [
{
"name": "my_queue_direct",
"vhost": "my_vhost",
"durable": true,
"auto_delete": false,
"arguments": {}
}
]
}
Тогда, кажется, есть 2 варианта:
Либо отправка сообщений с delivery_mode = 2
Или, установив ленивый режим в очередях (через настройку политики)
"policies": [
{
"vhost": "my_vhost",
"name": "my_policy",
"pattern": "",
"apply-to": "all",
"definition": {
"ha-mode": "all",
"ha-sync-mode": "automatic",
"queue-mode": "lazy"
}
}
]
Оба эти варианта будут хранить сообщения на диске. В чем разница между ними?