Spring Cloud Stream 集成Rabbit MQ生成队列配置说明

Spring Cloud Stream 当使用的消息中间件为Rabbit MQ的时候,配置input的时候,如果没有指定消息分组,那么生成的队列名称就是匿名的,并且当连接断开的时候会自动删除对应的队列。

在Rabbit MQ可以看到对应队列如下,第一个队列就是没有指定消息分组属性group生成的队列,可以看到生成的队列特性auto-delete:true,exclusive:true,也就是队列是排他性的,只有当前连接可见,并且当连接断开的时候队列会自动删除。

exclusive:true
auto-delete:true

如果指定的分组,那么生成的队列名称就是destination+group,例如如下配置生成的队列名字就是css_test.css_test_queue,队列是配置:

spring:
  cloud:
    stream:
      bindings:
        css_test:
          destination: css_test
          binder: rabbit1
          group: css_test_queue      

在Rabbit MQ可以看到对应队列如下,队列是durable: true,队列是持久的,不会自动删除。

durable:true

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
感谢您的提问!在 Spring Boot 中集成 RabbitMQ,可以使用 AMQP 协议来实现消息的发送和接收。在动态创建交换机和队列时,可以使用 RabbitAdmin 进行管理。简单来说,您可以在应用程序中创建一个 RabbitAdmin bean,然后使用它来声明交换机、队列和绑定,并使用它来发布和消费消息。以下是一个简单的示例: @Configuration public class RabbitConfig { @Autowired private ConnectionFactory connectionFactory; @Bean public RabbitAdmin rabbitAdmin() { return new RabbitAdmin(connectionFactory); } @Bean public SimpleMessageListenerContainer listenerContainer() { SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory); container.setQueues(myQueue()); container.setMessageListener(new MyMessageListener()); return container; } @Bean public Queue myQueue() { return new Queue("myQueue"); } @Bean public DirectExchange myExchange() { return new DirectExchange("myExchange"); } @Bean public Binding myBinding() { return BindingBuilder.bind(myQueue()).to(myExchange()).with("myKey"); } @Bean public RabbitTemplate rabbitTemplate() { RabbitTemplate template = new RabbitTemplate(connectionFactory); template.setExchange("myExchange"); template.setRoutingKey("myKey"); return template; } } 在上面的示例中,我们使用 @Configuration 注解来告诉 Spring Boot,我们正在创建一个配置类。我们还使用 @Autowired 注注入 ConnectionFactory 类,因为它是与 RabbitMQ 进行通信的关键。 然后,我们创建了一个 RabbitAdmin bean,该 bean 可以使用我们的 connectionFactory 来管理交换机、队列和绑定。我们还创建了一个 SimpleMessageListenerContainer bean,该 bean 可以监听我们的队列并处理来自队列的消息。 我们还创建了一个 Queue bean、一个 DirectExchange bean 和一个 Binding bean,这些 bean 是动态创建交换机、队列和绑定的关键。我们将它们添加到 RabbitAdmin 中,以便在应用程序运行时动态创建它们并将它们绑定在一起。 最后,我们创建了一个 RabbitTemplate bean,该 bean 可以使用我们的 connectionFactory 来发布消息。我们设置了 exchange 和 routingKey 属性,以便在发布消息时指定它们的目标。 这是一个非常基本的示例,仅仅涵盖了 RabbitMQ 动态创建交换机和队列的基本概念。实际上,您可能需要更复杂的配置来满足您的需求,但是这个示例可以作为一个起点,让您开始使用 Spring Boot 和 RabbitMQ。希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值