繁体   English   中英

在春季启动时使用路由键消费DirectExchange消息并进行交换

[英]Consume DirectExchange messages using routing key and exchange in spring boot

我正在尝试从直接交换类型(借助交换和路由密钥创建)的退出队列中使用消息。 我只有交换名称路由密钥,没有队列名称 有对纯Java的支持,但是没有地方可以在Spring引导中找到它。

@RabbitListener
    @RabbitHandler
    public void consumeMessage(Object message) {
        LOGGER.debug("Message Consumed.... : {}", message.toString());
    }

我如何使用带有路由键和交换名而不是队列名的消息来使用消息,而不是@RabbitListener要求queue

消费者从队列而不是交换中消费。 您必须使用路由密钥将队列绑定到交换机。

编辑

有几种方法可以在代理上自动声明队列。

    @RabbitListener(bindings = 
        @QueueBinding(exchange = @Exchange("myExchange"), 
            key = "myRk", value = @Queue("")))
    public void listen(String in) {
        System.out.println(in);
    }

这将绑定一个匿名队列(自动删除),该匿名队列在应用程序停止时将被删除。

    @RabbitListener(bindings = 
        @QueueBinding(exchange = @Exchange("myExchange"), 
            key = "myRk", value = @Queue("foo")))
    public void listen(String in) {
        System.out.println(in);
    }

将使用路由键将永久队列foo绑定到交换。

您也可以简单地声明#Bean来进行队列,交换和绑定。

请参阅配置代理

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM