rabbitmq 3 entities之exchange

exchanges, routing key and queues

exchanges:

exchange attributes:

exchange type:4种,direct exchange,amq.direct; fanout exchange, amq.fanout; topic exchange, amq.topic and headers exchange, amq.match and amq.headers

name

durability: 用来标识当broker重启时,此exchange 是否还有效,如果为flase标识此exchnage是transient,则重启broker后,要重定义此exchange

auto-delete:为true时,当没有queue绑定在此exchange时,自动删掉此exchange

arguments:为插件和broker-specific feature使用

default exchange:一个默认的exchange是direct exchange type的,没有名字即空字符,由rabbitMq server (message broker)已经predefined的empty string,其中的一个特点是,任何一个新创建的queue,都会自动绑定到此默认的exchange,其名字为空字符,没有名字,并且exchange和此queue的routing key就是queue的名字。

direct exchange:deliver的message带有一个routingkey1,而exchangeA 和queueA之间通过某一个routingkey2 类型为string型绑定,如果routingkey1 等于routingkey2,则此message会通过指定的exchangeA deliver到queueA。此种exchange的routingkey只能为string类型;详见http://www.rabbitmq.com/tutorials/amqp-concepts.html


Fanout exchange:exchange type为amq.fanout, 它会把所有从produer deliver给它的message,全部route到与它绑定的queues,此时routing key是无效的,可以忽略的。比如一条message到达exchange type为fanout的exchangeA,并且有N个queues绑定在此exchangeA上,则此message会被复制N-1份,发给N个queues,所有fanout exchange适合广播的情况。


topic exchange:route message to 一个或者多个queues,取决于message 的routing key与, exchange 和queue绑定用的pattern是否match。

headers exchange:通过message headers(包含多个attributes)来匹配,routingkey会被忽略,queue和headers exchange type的exchange A 绑定可以通过设置多个headers来绑定,x-match 属性用来指定message的header 值等于所有的绑定的headers值(x-match=all)还是任一一个header值(x-match=any)就算匹配的指示,

headers exchange类似于direct exchange,区别在于headers exchange 的要对应匹配的message的header不限于string,可以是integer或者hashmap等,同时,headers exchange有个x-match的属性可以指定任一或者全部匹配的情况。

详见官网:http://www.rabbitmq.com/tutorials/amqp-concepts.html






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值