一、RabbitMQ运行机制
Exchange类型
direct(点对点)、fanout、topic、headers(点对点,性能低下,基本用不到)。
direct Exchange:直接交换机:完全匹配、单播的模式。
当消息中的 routing key 与Binding中的 binding key完全一致,交换器就将消息发到对应队列中。
e.g. routing key=abc ==> binding key=abc
不能==> binding key=abc.x
不能==> binding key=x.abc
fanot Exchange:发布订阅,广播模式。
每个发送到交换器的消息都会被转发到与该交换器绑定的所有队列上。
Topic Exchange:分布订阅,部分广播模式。
通过模式匹配分配消息的路由键属性,将路由键与某个模式匹配,此时队列需要绑定到一个模式上。路由键和绑定键的字符串用点隔开,其中包括单词和通配符。
通配符:# 匹配 0 个或多个单词,* 匹配一个单词。
e.g. routing key=abc.x ==> binding key=abc.#
routing key=abc.x.y ==>
routing key=x.abc 不能==>
routing key=abc.efg ==> binding key=abc.#
==> binding key=#.efg
二、创建新交换机
三、为交换机绑定队列
1、创建一个新队列
创建成功:
2、交换机绑定队列
成功后发现:
四、正式开始
创建3个队列
创建交换机
绑定4个队列
五、Direct Exchange:发布消息和接受消息
发布消息:进入发送消息的交换机
②:输入路由键,用以匹配(选择)得到消息的队列
③:消息内容
接受消息:进入得到消息的队列
③:点击Get Message(s),得到消息
六、Fanout Exchange:发布消息和接受消息
创建Fanout Exchange
绑定4个队列
Routing key设置为FirstQueue.news,发送消息
结果却发现全收到了消息
七、Topic Exchange:发布消息和接受消息
创建Topic Exchange![](https://img-blog.csdnimg.cn/ea7b7f7563474d3a9f0645dd568fd25b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAR29sZGVuT2FrTGlicmFyaWFu,size_20,color_FFFFFF,t_70,g_se,x_16)
绑定4个队列:观察Routing key,与后面实验结果相对应
实验1
Routing key 设置为 FirstQueue.news 时:
Routing key 为 FirstQueue.# 和 *.news 的队列均可收到消息
实验二
Routing key 设置为 hello.news 时:
Routing key *.news 的队列可收到消息