RabbitMQ-Exchange

一、Exchange交换机

1.Exchange:接受消息,并根据路由键转发消息到所绑定的队列

RabbitMQ-Exchange_第1张图片

2.属性

Name:交换机名称

Type:交换机类型 direct、topic、fanout、headers

Durability:是否需要持久化

Auto Delete:当最后一个绑定到Exchange上的队列删除后,自动删除该Exchange

Internal:当前Exchange是否术语RabbitMQ内部使用,默认false

Arguments:扩展参数,用于扩展AMPQP协议制订化使用

二、Default Exchange

Default Exchange 是由代理预先声明的无名称(空字符串)的直接交换。它有一个特殊的属性,使得它对于简单的应用程序非常有用:每一个创建的队列都自动绑定到路由键(Routing Key)为队列名称(Queue Name)的交换机。

三、Direct Exchange

1.所有发送到Direct Exchange的消息被转发到RouteKey中指定的Queue。

注意:Direct模式可以使用RabbitMQ自带的Exchange:default Exchange,所以不需要将Exchange进行任何绑定操作,消息传递时,RouteKey必须完全匹配才会被队列接收,否则该消息会被抛弃。

RabbitMQ-Exchange_第2张图片

四、Topic Exchange

RabbitMQ-Exchange_第3张图片
RabbitMQ-Exchange_第4张图片

Topic Exchange基于消息路由键(Routing Key)和用于将队列绑定到交换机的模式之间的匹配,将消息路由到一个或多个队列。Topic Exchange通常用于实现各种发布/订阅模式变化。Topic Exchange通常用于消息的多播路由。

每当问题涉及多个消费者/应用程序,它们有选择地选择它们想要接收哪种类型的消息时,应该考虑使用Topic Exchange。

五、Fanout Exchange

RabbitMQ-Exchange_第5张图片

Fanout Exchange将消息路由到绑定到它的所有队列,并且忽略路由键(Routing Key) 。如果N个队列绑定到Fanout Exchange,则当向该交换机发布新消息时,将向所有N个队列传递消息的副本。Fanout Exchange是广播消息路由的理想选择。

Fanout Exchange向每个绑定到它的队列传递消息副本,适用场景如下:

1.大型多人在线(MMO)游戏可用于排行榜更新或其他全球性事件。

2.体育新闻网站可以使用Fanout Exchange来实时更新移动客户端的评分更新。

3.分布式系统可以广播各种状态和配置更新

你可能感兴趣的:(RabbitMQ-Exchange)