RabbitMQ有多少种Exchange?

面试回答模板

"RabbitMQ 在 AMQP 协议中预定义了 四种常用交换机 + 两种特殊类型,共 6 种:

  1. Direct:routing-key 全等匹配;
  2. Fanout :广播,忽略 key;
  3. Topic:按 *.# 通配符匹配;
  4. Headers :按消息头键值对匹配(性能低,很少用);
  5. System :系统内部保留(如 amq.rabbitmq.trace);
  6. 自定义:通过插件扩展实现。

Java 开发层面 只需关注前 4 种,创建方式相同:
channel.exchangeDeclare("x", BuiltinExchangeType.DIRECT|FANOUT|TOPIC|HEADERS);"

追问场景示例

面试官:为什么实际项目里很少用 Headers?

答:Headers Exchange 在匹配时遍历所有键值对,CPU 开销大,且可读性差,Topic 几乎能覆盖其需求,所以线上基本不用。

相关推荐
itLaity4 小时前
基于Kafka实现简单的延时队列
spring boot·分布式·kafka
qq_529835354 小时前
Zookeeper的简单了解
分布式·zookeeper·云原生
你我约定有三5 小时前
RabbitMQ--消息丢失问题及解决
java·开发语言·分布式·后端·rabbitmq·ruby
Java初学者小白6 小时前
秋招Day19 - 分布式 - 分布式事务
java·分布式
程序员小羊!7 小时前
Zookeeper 3.6.3【详细技术讲解】整
分布式·zookeeper·云原生
Java水解9 小时前
RabbitMQ用法的6种核心模式全面解析
后端·rabbitmq
是2的10次方啊9 小时前
微信公众号阅读量为什么会不一致?一文读懂分布式系统的那些事儿
分布式
你我约定有三14 小时前
RabbitMQ--Springboot解决消息丢失
java·spring boot·rabbitmq·java-rabbitmq
Rancemy21 小时前
rabbitmq 03
java·分布式·rabbitmq