簡體   English   中英

使用 SpringIntegration Java DSL 將消息發送到特定的 RabbitMQ 隊列

[英]Sending the message to specific RabbitMQ Queue using SpringIntegration Java DSL

我正在開發一個使用Spring Boot版本 2.0.4.RELEASE 和RabbitMQ版本 3.7.7 的 Java 應用程序。 該應用程序正在Redis數據庫中緩存來自 RabbitMQ 的所有消息,並且必須在 RabbitMQ 中創建新隊列時重新發送。 目前,我設法使用事件交換插件和隊列名稱捕獲隊列創建。 我正在使用AMQP 出站適配器將消息發送回 RabbitMQ。

外流

public IntegrationFlow outFlow(AmqpTemplate amqpTemplate) {
    return IntegrationFlows.from(outputChannel())
            .handle(Amqp.outboundAdapter(amqpTemplate)
                    .routingKeyExpression("headers.routingKey")
                    .exchangeNameExpression("headers.exchange"))
            .get();
}

我可以使用routingKey將消息發送到特定的交換。 但是,我不知道如何在出站適配器中配置隊列名稱。 這樣我就可以將消息發送到該特定隊列。

如果要發送到特定隊列,請使用隊列名稱作為路由鍵和默認全局交換 - 空名稱。 有一個特殊的直接交換器,它將所有隊列通過它們的名稱作為路由鍵綁定到它。

有關更多信息,請參閱 AMQP 協議文檔: https : //www.rabbitmq.com/tutorials/amqp-concepts.html#exchange-default

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM