Exchange的类型
3.1 Fanout Exchange
这是最简单的一种交换器,首先要知道一个概念-banding。banding是将exchange和队列绑定的一种队则,java中万物皆对象,所以这个绑定也看做一个对象。
banding中还有个路由键的概念。就是即使交换机与队列进行了绑定,但是在某些场景下,我们不希望与交换机绑定的队列都能收到消息。所以就可以去指定一个路由键。
在进行绑定的时候去指定路由键,在发送消息的时候指定Exchange、指定路由键,才可以正确的将消息发送到队列上。
Fanout Exchange 比较特殊 会忽略路由键的设置,直接将 Message 广播到所有绑定的 Queue 中。
3.2 Direct Exchange
Direct Exchange 是RabbitMq的模式模式,将Exchange和队列绑定的时候,需要指定路由键,并且在发消息的时候也需要指定路由键,并且路由键必须要完全一致。
例如指定了路由键是green,那么只有与exchange绑定并且路由键为green的队列才会收到消息。
3.3 Topic Exchange
与Direct Exchange基本相同,唯一区别在于路由键。Topic exchange 的路由键可以去进行模糊匹配。
* 表示一个单词的模糊匹配 例如,路由键是 *.apple.big 则表示第一个单词可以是任意的,只要后边单词完全匹配,就可以。
# 表示完全模糊匹配。例如 路由键是 #.little ,那么 发送消息的路由键可以是 green,apple,little,也就是说前面的单词是任意的。
原文链接 :https://www.cnblogs.com/zhazhahui/p/11185005.html