Я использую RabbitMQ некоторое время.У меня есть несколько микросервисов, использующих базовый механизм RPC, очень похожий на тот, который описан в Кроликах .Я пытаюсь перейти на AMQP 1.0 с помощью rhea, потому что мне нужно использовать Amazon Active MQ.Но я все еще застрял в репликации этого простого шаблона:
ch.assertQueue('', {exclusive: true}, function(err, q) {
let corr = //some UUID
ch.consume(q.queue, function(msg) {
/* */
});
ch.sendToQueue('rpc_queue',
"TEST2",
{ correlationId: corr, replyTo: q.queue });
});
})
Что я не получаю от rhea, так это возможность иметь временную очередь (связанную с клиентским подключением) и затем нажать «replyTo» дляэти очереди.
Я пробовал:
client.open_receiver({
source: { address: "rpc:callback", expiry_policy: "connection-close" }
});
с использованием expiry_policy, но это не работает (я пробую даже RabbitMQ с плагином AMQP 1.0, а затем Apache Active MQ).
Дело в том:
- Я хотел бы иметь временную (эксклюзивную) очередь, которая автоматически удаляется при разрыве клиентского соединения
- Использовать эту временную очередь (Iмогу вручную назначить ему временное имя, это не имеет смысла) для обращения к сообщению replyTo
, но я не могу ни получить временную очередь (исключая AMQP 0.9.1), нииспользуйте это имя для адресации сообщения.Чего мне не хватает?