Exchange交换机

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

在这里插入图片描述

交换机属性

Name: 交换机名称
Type: 交换机类型direct、topic、 fanout、headers
Durability: 是否需要持久化,true为持久化
Auto Delete: 当最后一个绑定到Exchange上的队列删除后,自动删除该Exchange
Internal: 当前Exchange是否用于RabbitMQ内部使用,默认为False
Arguments: 扩展参数,用于扩展AMQP协议自制定化使用

1.Direct Exchange

所有发送到Direct Exchange的消息被转发到RouteKey中指定的Queue
注意: Direct模式可以使用RabbitMQ自带的Exchange: defaultExchange,所以不需要将Exchange进行任何绑定(binding)操作,消息传递时,RouteKey必须完全匹配才会被队列接收,否则该消息会被拋弃.
在这里插入图片描述

2.Topic Exchange

所有发送到Topic Exchange的消息被转发到所有关心RouteKey中指定Topic的Queue上
Exchange 将RouteKey和某Topic进行模糊匹配,此时队列需要绑定一个Topic
注意: 可以使用通配符进行模糊匹配
符号 "#" 匹配一个或多个词
符号 "*" 匹配不多不少一个词
例如: "log.#" 能够匹配到 "log.info.oa"
"log.*" 只会匹配到"log.error"
在这里插入图片描述

3.Fanout Exchange

不处理路由键,只需要简单的将队列绑定到交换机上
发送到交换机的消息都会被转发到与该交换机绑定的所有队列上
Fanout交换机转发消息是最快的
在这里插入图片描述

4.概念

4.1Binding-绑定

Exchange和Exchange、Queue之间的连接关系
Binding中可以包含RoutingKey或者参数

4.2 .Queue-消息队列

消息队列,实际存储消息数据
Durability:是否持久化,Durable: 是,Transient: 否
Auto delete:如选yes,代表当最后-个监听被移除之后,该Queue会自动被删除

4.3.Message-消息

服务器和应用程序之间传送的数据.
本质上就是一-段数据,由Properties和Payload ( Body )组成
常用属性: delivery mode、headers (自定义属性)
Message-其他属性: content_ type、 content encoding、priority、correlation id、reply_ to、expiration、message_ id、timestamp、type、
user id、app_ id、cluster id

4.4.Virtual host-虚拟主机

虚拟地址,用于进行逻辑隔离,最上层的消息路由
一个Virtual Host里面可以有若干个Exchange和Queue
同一个Virtual Host里面不能有相同名称的Exchange或Queue

发布了49 篇原创文章 · 获赞 3 · 访问量 2304

猜你喜欢

转载自blog.csdn.net/xiao_count/article/details/103026633