1. Spring AMQP 的 @RabbitListener 与 RabbitMQ Streams 在 Spring Boot 3.5+ 的集成
Spring AMQP 的 @RabbitListener 与 RabbitMQ Streams 在 Spring Boot 3.5+ 中如何集成?
- @RabbitListener 注解消费
- RabbitMQ Streams 协议
- Stream 与 AMQP 的差异
@RabbitListener(queue = "...") 声明式消费 AMQP 队列,Spring 的 SimpleMessageListenerContainer 管理连接与 ack。RabbitMQ Streams 是 RabbitMQ 3.9+ 的流式协议(rabbit-stream),基于日志追加、支持重放与消费者组,与经典 AMQP 队列不同(AMQP 是消费即删除,Stream 是持久日志)。Spring Boot 3.5+ 集成:Spring AMQP 提供 @RabbitListener 支持 Stream 容器(StreamListenerContainer),通过 StreamListener 消费 Stream;配置 spring.rabbitmq.listener 或使用 StreamMessageListenerContainer。Stream 适合高吞吐、重放、事件溯源场景,AMQP 队列适合传统任务队列。
@RabbitListener 抽象统一 AMQP 与 Stream 消费,底层用不同容器。Stream 是日志型的持久队列,支持重放与多个消费者共享。