RabbitMQ学习系列教程四:Exchange 交换机及直连交换机简单使用
RabbitMQ学习系列教程四:Exchange 交换机及直连交换机简单使用
凯哥java 凯哥java
Exchange 交换机及直连交换机简单使用
Exchange的定义:
接收消息,并根据路由键转发消息所绑定的队列。
交换机属性:
Name:交换机名称
Type:交换机类型 direct、topic、fanout、headers
Durability:是否需要持久化,true为持久化
Auto Delete:当最后一个绑定到exchange上的队列删除后,自定删除该exchange
Internal:当前exchange是否用于rabbitmq内部使用,默认为false
交换机类型详解:
Direct Exchange-直连交换机:
所有发送到Direct Exchange的消息被转发到routeKey中指定的queue.
注意:Direct模式可以使用RabbitMq自带的Exchange(default Exchange),所以不需要将Exchange进行任何绑定(binding)操作,消息传递时,RouteKey必须完全匹配才会被队列接收,否则该消息会被抛弃掉的。
官网这么描述Default Exchange的:
Direct exchange示意图:
我们可以看到,每一个routing_key都指向一个消费者。
我们来看看代码:
生产者代码:
在生产者代码中,我们添加了交换机名称及routingkey这两个信息。
接着我们来看看消费者代码:
在消费者端代码中,我们同样添加了exchangeName及routingkey同时还添加了队列名称及exhanggeType属性。
启动后,在浏览器中查看:
查看exchange:
发现已经绑定的:To指向的时
Queue:
点击查看queue:
发现已经绑定了test_direct_exchange了。
运行结果:
本节总结:
Direct Exchange类型的,简称直连方式。其实rabbitmq默认的就是此种方式。使用此种方式要求很简单:
如果指定了exchangeName则会在指定exchangeName上查找指定routingkey的。
在生产者中,设置channel属性时添加路由名称及key;
在消费者中,同样在channel设置属性的时,需要交换机名称及key保持也生产者一致。就可以正常接收消息了。
下节预告:在下节课中我们将讲解topic exchange
- 中间件系列五 RabbitMQ之Direct exchange(直连交换机)和路由
- maven系列学习之二:maven初体验-简单使用maven进行测试,编译、打包和运行
- Ultra Fractal教程系列21——如何使用图层04——学习关于图层的不透明度
- [linux学习]centos下mysql的简单使用教程
- STL快速入门学习教程之map的简单使用
- Dojo1.8系列教程二 ---- 简单的模块及动画使用
- Cordova系列学习教程03 Cordova简单功能的实现
- RabbitMQ系列教程三:RabbitMQ最全特性一览及Java Api的使用
- 学习Emacs系列教程(一):基本使用
- 【ImageLoader】Universal-Image-Loader学习系列(一),下载及简单的使用
- RabbitMQ系列教程之一:我们从最简单的事情开始!Hello World(转载)
- STL快速入门学习教程之list的简单使用
- [小白系列]Windows系统下的pycharm如何将anaconda和python结合,导入经常使用的包 简单教程
- [转]Ultra Fractal教程系列16——学习基础技巧08——使用渐变
- SBT(Scala Build Tool)系列教程-使用sbt构建第一个简单的HelloWorld程序
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
- 树莓派学习系列5——使用python编写简单的游戏程序
- Cordova系列学习教程03 Cordova简单功能的实现
- [转]Ultra Fractal教程系列10——学习基础技巧02——学习使用Switch模式
- [转]Ultra Fractal教程系列21——如何使用图层04——学习关于图层的不透明度