一、RabbitMQ的四种交换机
最新版本的RabbitMQ有四种交换机类型,分别是:Direct exchange、Fanout exchange、Topic exchange、Headers exchange
1、Direct exchange---直接类型交换机
要求消息带的路由键和绑定的路由键完全匹配,这是一个完整的匹配。
比如一个队列A绑定到该交换机上的路由键是“abc”,则只有指定的路由键是“abc”的消息才被投递给队列A,其他的不会投递给队列A
2、Fanout Exchange---扇出类型交换机
只需要简单的将队列绑定到该类型交换机上,该类型的交换机绑定队列时可以不指定路由键(Routingkey)
当消息发送给该交换机后,它会将消息投递给与该交换机绑定的所有队列
很像广播,每台子网内的机器都会获得一份消息,Fanout交换机转发消息是最快的
3、Topic Exchange---主题类型交换机
将路由键和某模式进行匹配。此时队列需要绑定某一个模式上。符号#匹配0个或多个单词,符号 *匹配一个单词。
4、Headers Exchanges
可以选择性忽略
- 首页
- Broker:可以简单的理解为安装了RabbitMQ服务的这台机器就可以称为一个Broker
- Exchange:交换机,消息经由它,通过路由键来判断并决定把消息投递给哪个队列,它类似于一个路由器的角色
- Queue:队列,最终将消息投递到队列中,由消费端监听队列进行消费
- Binding:绑定关系,需要给交换机绑定队列,绑定时需要给一个路由键
- Routingkey:路由键,交换机和队列进行绑定时,需要指定路由键或通配符路由键。交换机根据路由键来决定消息投递到哪个或哪些队列
大致流程:首先需要根据业务来创建交换机和队列,使用RabbitMQ前创建完成后需要给交换机绑定队列(交换机和队列可以是多对多的关系),绑定队列时要指定具体的路由键或者通配符路由键当生产者发送一条消息的时候,需要指定交换机和路由键,消息到达Broker后先转给刚才指定的交换机,交换机再根据路由键来决定把消息投递给与自己绑定的哪一个或哪一些队列,最后再由消费端来监听这些队列,消费处理对应的消息
二、在管理页面配置交换机,队列等
2、创建队列
点击Queues菜单 Add a new queue里输入要新创建的队列信息
3、创建绑定关系
在交换机列表点击对应的交换机,进入绑定页面
三. 测试
测试给Fanout类型交换机发送消息
所有和Fanout类型交换机绑定的对应都应该收到消息
- Automatic ack 表示读完不会把消息放回队列
Nack messages xx 表示读完 会把消息放回队列
测试给direct类型交换机发送消息
测试给Topic类型交换机发送消息
测试发送一条路由键为China.news的消息,根据我们建立的绑定关系和绑定关系中的通配符路由键判断
这条消息3个队列应该都可以收到
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。