Я хочу разработать политику округления для нескольких компонентов:
// | exchange | type | routing key | queue |
// |--------------|-------|----------------------------|------------------------------|
// | processing | topic | processing.trx.elavon | processing-elavon-sale |
// | processing | topic | processing.trx.elavon | processing-elavon-authorize |
// | processing | topic | processing.trx.elavon | processing-elavon-capture |
// | processing | topic | processing.trx.genesis | processing-genesis-sale |
Я пробовал с Тематическим обменом и Прямым обменом, но получаю ошибку Reply received after timeout
.После расследования выясняется, что я отправляю сообщения в 1 очередь, но 2 очереди отправляют сообщения.
В моем случае я хотел бы использовать ключ маршрутизации и дополнительный уровень или абстракцию в качестве переменной конфигурации для целевого шлюза, а затемотправить тип сообщения в очередь.
Но, похоже, этот дизайн не подходит.
Какая политика маршрутизации должна быть более подходящей, чтобы избежать ошибки: Reply received after timeout
?Только одна очередь должна получить сообщение и ответить.
РЕДАКТИРОВАТЬ:
В моем случае я использую Spring AMQP для отправки сообщений:
convertSendAndReceive(
ContextServer.EXCHANGE_PROCESSING, ContextServer.ROUTING_KEY_PROCESSING_TRANSACTION_ELAVON, "some_payload");
Но как я могу добраться толькоодна очередь processing-elavon-sale
, не все очереди связаны с ключом маршрутизации processing.trx.elavon
?