Rabbitmq交换机详解
rabbitmq交换机
1.作用:
接受生产者的消息,然后根据路由键routingKey把消息投递到跟交换机绑定的对应的队列上
2.属性
Name: 交换机的名称
Type: 交换机的类型,direct,topic,fanout,headers
Durability :是否需要持久化
autodelete:假如 没有队列绑定到该交换机,那么该交换机会自动删除
Internal: 当前交换机是否用户rabbitmq内部使用不常用,默认为false
Argurements: 扩展参数,用户扩展AMQP 定制化协议
3.类型
1.直连交换机:direct exchange
所发送的direct exhchange 的消息都会被投递到与exchange和queue绑定的routingKey名称相同的那个exchage-queue上
**:direct模式下,可以使用rabbitmq自定exchange----> default exchange 所以不需要交换机和任何队列绑定,
消息将会投递到routingKey名称和队列名称相同的队列上
2.主题交换机 TopicExchange
就是在队列上绑到top 交换机上的routingKey ,可以是通过通配符来匹配的
通配符的规则是
比如: log.# :可以匹配一个单词 也可以匹配多个单词 比如 log.# 可以匹配log.a log.a.b,即以log开头的都可以
#.order:可以匹配project1.order,也可以匹配project2.order的消息,即以order结尾的都可以
log.* 可以匹配一个单词 比如 log.* 可以匹配log.a 但是不可以匹配log.a.b
3.扇形交换机(fanout exchange)
就是消息通过从交换机到队列上不会通过路由key 所以该模式的速度是最快的 只要和交换机绑定的那么消息就会
被分发到与之绑定的队列上