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

交换机属性
Name
交换机名称
Type
交换机类型:direct、topic、fanout、headers
Durability
是否需要持久化,true为持久化
Auto Delete
当最后一个绑定到Exchange上的队列删除后,自动删除该Exchange
Internal
当前Exchange是否用于RabbitMQ内部使用,默认False
Arguments
扩展参数,用于扩展AMQP协议自定义使用
交换机类型详解
Direct Exchange
所有发送到Direct Exchange的消息被转发到Routekey中指定的queue
注意:Direct模式可以使用RabbitMQ自带的Exchange: default Exchange,所以不需要将Exchange进行任何绑定(binding)操作,消息传递时,RouteKey必须完全匹配才会被队列接收,否则该消息会被抛弃。

Coding
生产者

消费者


Topic Exchange
所有发送到Topic Exchange的消息被转发到所有关心RouteKey中指定Topic的Queue上
Exchange将RouteKey和某Topic进行模糊匹配,此时队列需要绑定一个Topic
可以使用通配符进行模糊匹配


Coding
消费者


生产者


Fanout Exchange
不处理路由键,只需要简单的将队列绑定到交换机上
发送到交换机的消息都会转发到与该交换机绑定的所有队列上
fanout交换机转发消效率是最快的

Coding
消费者


生产者

绑定、队列、消息、虚拟主机总结
Binding-绑定
Exchange与Exchange、Queue之间的连接关系
Binding中可可以包含routingkey或参数
Queue-消息队列
消息队列,实际存储消息数据
Durability:是否持久化,Durable:是 Transient:否
Auto delete:yes 代表最后一个监听被移除后,该Queue会自动删除
Message-消息
服务器和应用程序之间传送的数据
由Properties和payload(body)组成
常用属性:delivery model 、headers(自定义属性)
Message-其他属性
content_type、content_encoding、priority
correlatin_id、reply_to、expiration、message_id
timestamp、type、user_id、app_id、cluster_id



Virtual host-虚拟主机
逻辑隔离,最上层的消息路由
一个virtual host里面可以有若干个Exchange和Queue
同一个Virtual host里面不能有相同名称的Exchange和Queue




