RabbitMQ 新增交换机(Add a new exchange)完整详解

RabbitMQ 新增交换机(Add a new exchange)红框区域完整详解
红框是手动创建自定义Exchange交换机的表单,下面逐行拆解每个配置项含义、作用、业务场景:
1. Name(交换机名称,必填*)
- 作用:自定义交换机唯一标识,生产者发消息时指定该名称路由消息。
- 规范:不能包含空格、特殊控制字符,区分大小写;同一个虚拟主机(Virtual host
/)下名称不能重复。 - 示例:
order_exchange、pay_topic_ex。
2. Type(交换机类型,下拉选择)
决定消息路由分发规则,4种核心类型:
- direct(默认选中)
精准匹配:消息routing-key和队列绑定的binding-key完全相等才投递。
适用:一对一精准推送,如订单状态通知、单点任务分发。 - fanout
广播模式:忽略routing-key,所有绑定该交换机的队列全部收到消息。
适用:全站公告、日志广播、多服务同步缓存。 - topic
模糊通配匹配:支持*(匹配一个单词)、#(匹配零/多个单词)。
适用:日志分类、多维度事件(user.create/user.delete)。 - headers
不依赖routing-key,靠消息header键值对匹配路由。
适用:复杂多条件筛选场景,极少使用。
3. Durability(持久化)
两个选项:
- Durable(持久,默认):交换机元数据存入磁盘,RabbitMQ重启后交换机不会丢失;生产环境必选。
- Transient(临时):仅存内存,服务重启/崩溃后交换机直接销毁,测试临时场景使用。
注意:仅持久交换机不代表消息持久,消息持久需要队列+消息投递模式同时设置。
4. Auto delete(自动删除)
选项:Yes / No(默认No)
- No:永久保留,手动删除才会销毁。
- Yes:当最后一个绑定该交换机的队列解绑/删除时,RabbitMQ自动删除此交换机。
适用:临时临时任务、一次性临时通道。
5. Internal(内部交换机)
选项:Yes / No(默认No)
- No:普通交换机,生产者可以直接发送消息到这个交换机。
- Yes:内部交换机,客户端无法直接发消息,只能由其他交换机通过
alternate exchange备用交换机转发进来;多用于交换机嵌套路由、死信二次中转,业务极少用。
6. Arguments(自定义参数,键值对)
扩展配置,用于高级特性,输入框格式:键 = 值,右侧选择值类型(String/Number/Bool),点Add增加多组参数。
常用参数:
- Alternate exchange(备用交换机,页面单独快捷按钮)
补充说明:下方Alternate exchange按钮是快捷添加参数alternate-exchange,填入另一个交换机名称。
逻辑:当前交换机无法匹配到任何队列时,消息转发到备用交换机,避免消息丢失。 x-delayed-type:延迟交换机插件参数,实现延时消息。x-message-ttl:交换机层面统一设置消息过期时间。
底部按钮 Add exchange
填写完所有配置后点击,完成交换机创建,上方列表会刷新出你新建的Exchange。
补充业务建议
- 线上业务通用配置参考:
Name:自定义业务名
Type:根据分发需求选direct/topic/fanout
Durability:Durable
Auto delete:No
Internal:No - 内置系统交换机(页面上方列表里amq.*开头)是RabbitMQ自带,不要修改;业务必须自己新建自定义交换机。
- Alternate exchange备用交换机是防丢消息常用方案,订单、支付等核心链路建议配置。
版权属于:Joyber
本文链接:https://blog.qqvbc.com/default/1489.html
转载时须注明出处及本声明