背景信息
生产者将消息发送到交换器,由交换器将消息路由到一个或多个队列中(或者丢弃)。交换器根据Routing Key和Binding Key将消息路由到Queue。不同类型的交换器的路由规则不同。
创建交换器
(1)登录管理控制台。
(2)进入RabbitMQ管理控制台。
(3)在实例列表页在操作列,目标实例行点击“管理”。
(4)点击“交换器管理”后,点击“新建”按钮。
(5)点击“新建”后出现以下窗口,选择虚拟主机,添加交换器名字,选择交换器类型和其他参数,然后点击“确定”即可新建交换器。
参数 | 描述 |
虚拟主机 | 选择创建交换器所属的虚拟主机 |
名称 | 交换器名称。以amq.开头的为保留字段,因此不能使用。例如:amq.test。 |
类型 | Exchange类型。取值: |
direct:该类型路由规则会将消息路由到Binding Key与Routing Key完全匹配的Queue中。 | |
topic:该类型与direct类型相似。Topic Exchange路由规则没有Direct Exchange那么严格, 支持模糊匹配和多条件匹配,即该类型Exchange使用Routing Key模式匹配和字符串比较的方式将消息路由至绑定的Queue中。 | |
fanout:该类型路由规则非常简单,会把所有发送到该Exchange的消息路由到所有与它绑定的Queue中,相当于广播功能。 | |
headers:该类型与direct类型相似。Headers Exchange使用Headers属性代替Routing Key进行路由匹配,在绑定Headers Exchange和Queue时,设置绑定属性的键值对;在向Headers Exchange发送消息时,设置消息的Headers属性键值对,使用消息Headers属性键值对和绑定属性键值对比较的方式将消息路由至绑定的Queue。 | |
x-delayed-message:通过声明该类Exchange,您可以自定义消息的Header属性x-delay来指定消息延时投递的时间段,单位为毫秒。消息将在x-delay中定义的时间段后,根据路由规则被投递到对应的Queue。路由规则取决于x-delayed-type中指定的Exchange路由类型。 | |
x-delayed-type | 当Exchange类型为x-delayed-message时,需要配置此参数,以指定Exchange的路由类型。 |
是否持久化 | 交换器是否持久化到磁盘 |
是否自动删除 | 如果是,交换器将在至少一个队列或交换器绑定到该交换器,然后所有队列或交换器都已解除绑定时删除。 |
是否内置 | 如果是,客户端不能直接发布到这个交换器。它只能与其他交换器绑定使用。 |
其他参数 | Alternate exchange:备份交换器是为了实现没有路由到队列的消息,声明交换机的时候添加属性alternate-exchange,声明一个备用交换机,一般声明为fanout类型,这样交换机收到路由不到队列的消息就会发送到备用交换机绑定的队列中。 |
参数 | 描述 |
虚拟主机 | 选择创建交换器所属的虚拟主机 |
名称 | 交换器名称。以amq.开头的为保留字段,因此不能使用。例如:amq.test。 |
类型 | Exchange类型。取值: |
x-delayed-type | 当Exchange类型为x-delayed-message时,需要配置此参数,以指定Exchange的路由类型。 |
是否持久化 | 交换器是否持久化到磁盘 |
是否自动删除 | 如果是,交换器将在至少一个队列或交换器绑定到该交换器,然后所有队列或交换器都已解除绑定时删除。 |
是否内置 | 如果是,客户端不能直接发布到这个交换器。它只能与其他交换器绑定使用。 |
其他参数 | Alternate exchange:备份交换器是为了实现没有路由到队列的消息,声明交换机的时候添加属性alternate-exchange,声明一个备用交换机,一般声明为fanout类型,这样交换机收到路由不到队列的消息就会发送到备用交换机绑定的队列中。 |
查看交换器
(6)点击目标交换器名称,即可查看交换器概况。
(7)点击“绑定信息”,即可查看交换器的绑定信息。
(8)点击“被绑定信息”,即可查看交换器的被绑定信息。
删除交换器
(9)在目标交换器点击“删除”,即可删除交换器。