在RabbitMQ中设计消息的路由

时间:2019-02-03 09:32:07

标签: rabbitmq rabbitmq-exchange

我想为几个组成部分设计舍入策略:

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

0 个答案:

没有答案