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 几乎能覆盖其需求,所以线上基本不用。

相关推荐
飞鱼&4 小时前
RabbitMQ-高可用机制
java·rabbitmq·java-rabbitmq
weixin_436525074 小时前
芋道源码 - RabbitMQ + WebSocket 实现分布式消息推送
分布式·websocket·rabbitmq
飞鱼&4 小时前
RabbitMQ-消息堆积
分布式·rabbitmq
zcyf08094 小时前
rabbitmq分布式事务
java·spring boot·分布式·rabbitmq
北欧柠檬酸海豹4 小时前
Kafka
分布式·kafka
熙客5 小时前
Session与JWT安全对比
java·分布式·安全·web安全·spring cloud
熙客7 小时前
分布式ID解决方案
java·分布式·spring cloud·微服务
大数据CLUB7 小时前
基于hive和mapreduce的地铁数据分析及可视化_hive作为数据库
大数据·hive·hadoop·分布式·数据分析·mapreduce
斯普信专业组9 小时前
fluent-bit使用kafka作为数据源采集问题
分布式·kafka·fluent-bit