交换机的功能主要是接收消息并且转发到绑定的队列,交换机不存储消息,在启用ack模式后,交换机找不到队列会返回错误。交换机有四种类型:Direct, topic, Headers and Fanout(headers模式不怎么使用了,这里不做介绍)

fanout模式(广播模式):
会将消息发送给所有队列
fanout模式,消费者将队列跟交换器进行绑定时,可以不用指定具体的routingKey

direct模式(直连模式):
通过完全匹配routingKey来使交换机与哪个队列绑定(一个交换机绑定队列时,可以有多个routingKey)

topic模式(模糊匹配模式):
模糊匹配routingKey来使交换机与哪个队列绑定。匹配交换器的匹配符
    *(星号)表示一个单词
    #(井号)表示零个或者多个单词
如果消费者端的路由关键字只使用【#】来匹配消息,在匹配【topic】模式下,它会变成一个分发【fanout】模式,接收所有消息。
如果消费者端的路由关键字中没有【#】或者【*】,它就变成直连【direct】模式来工作。
特殊例子:
消费者端路由关键字 "*", 不能接收到生产者端发来路由关键字为空的消息
消费者端路由关键字 "#", 能接收到生产者端发来路由关键字为空的消息
消费者端路由关键字"#.*", 能接收到生产者端以“..”为关键字的消息, 如果发送来的消息只有一个单词,不能匹配上

这三种模式的使用示例,可以查看源码:https://github.com/xuwenjin/xwj_repo/tree/master/spring-activemq

最新文章

  1. History API与浏览器历史堆栈管理
  2. MonoTouch 二三事(三)mono mkbundle 打包程序的解包支持
  3. 读取hdfs文件之后repartition 避免数据倾斜
  4. 利用Generator解决异步回调原理
  5. Bower 自定义组件文件夹名称
  6. 在SQL2008配置数据库镜像1418错误的处理
  7. 如何获取QQ里的截图app?
  8. 【Spring开发】—— Spring Core
  9. HTTPS的工作原理
  10. python string 文本常量和模版
  11. linux下查看所有用户及所有用户组
  12. PHP 获取系统信息,PHP 获取服务器详细信息
  13. 利用python生成交换机的VRF配置文件
  14. 移动设备(手机)的唯一ID有哪些
  15. 【转】Linux服务部署--Java(三) Nginx
  16. ubuntu下安装CAJ阅读器
  17. vuex数据管理-数据共享
  18. linux安装activemq
  19. 【node.js】函数、路由
  20. Android Studio更改工程名异常解决方案 :can't rename root module

热门文章

  1. 使用datepicker日期插件
  2. Sql Server字符串拆分(Split)方法汇总
  3. HttpWebRequest和WebClient的用法
  4. 内置装饰器二:@property
  5. APP间传递消息
  6. “借刀杀人”之CSRF拿下盗图狗后台
  7. Java并发工具类之同步屏障CyclicBarrier
  8. Android之常用类库
  9. 深入理解java内存模型
  10. 【转】JMeter学习参数化User Defined Variables与User Parameters