# spring-rabbitmq-demo **Repository Path**: ythct/spring-rabbitmq-demo ## Basic Information - **Project Name**: spring-rabbitmq-demo - **Description**: spring 集成 RabbitMQ - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-18 - **Last Updated**: 2025-12-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README RabbitMQ 交换机有四种类型: | 交换机类型 | 特性与使用场景 | | ----------- | --------------------------------------------------- | | **Direct** | 根据精确的路由键(Routing Key)匹配,将消息发送到与之完全匹配的队列。适用于点对点消息传递。 | | **Fanout** | 将消息广播到所有与该交换机绑定的队列,忽略路由键。适用于群发、广播场景。 | | **Topic** | 使用通配符(`*` 匹配一个单词,`#` 匹配多个单词)进行模糊匹配路由键。适用于灵活的消息路由场景。 | | **Headers** | 根据消息头(Headers)中的键值对进行匹配,而非路由键。适用于复杂的路由逻辑(使用较少)。 | RabbitMQ 支持多种队列类型,主要如下: | 队列类型 | 特性与使用场景 | | --------------- | ------------------------------------------------ | | **Classic** | 默认队列类型,单机运行,支持持久化、优先级、TTL 等特性。适合传统应用。 | | **Quorum** | 基于 Raft 协议实现,具备强一致性和高可用性,适用于分布式系统,但牺牲部分功能(如优先级)。 | | **Stream** | 持久化日志结构,支持大量消费者、消息回溯和高吞吐,适用于流式处理场景。 | | **Lazy** | 消息优先写入磁盘,减少内存占用,适合消息量大但消费不频繁的场景。 | | **Dead Letter** | 用于处理消费失败或过期的消息,可结合 TTL 实现延迟队列等功能。 | 总结建议 | 场景需求 | 推荐组合示例 | | --------------- | ------------------------------------ | | 广播通知 | Fanout 交换机 + Classic 队列 | | 精确路由(如日志分级) | Direct 交换机 + Classic/Quorum 队列 | | 模糊匹配(如多级路由) | Topic 交换机 + Classic/Quorum/Stream 队列 | | 高可用分布式系统 | Quorum 队列 + Direct/Topic 交换机 | | 消息量大、消费者多 | Stream 队列 + 任意交换机 | | 实现延迟消息(如订单超时取消) | 任意交换机 + Classic 队列 + TTL + 死信队列 |