rabbitmq 是spring所在公司Pivotal自己的产品 是基于AMQP高等行列步队协议的中间件 采取erlang开拓 因此安装须要erlang环境 详细安装根据自己的环境 由于跟spring有共同的血缘关系 以是spring 百口桶对其的支持该当是相称完善的
大略观点
一样平常行列步队 都是生产者将发送到行列步队 消费者监听行列步队进行消费 rabbitmq 一个虚拟主机(默认 /)持有一个或者多个交流机(Exchange) 用户只能在虚拟主机的粒度进行权限掌握 交流机根据一定的策略(RoutingKey)绑定(Binding)到行列步队(Queue)上 这样生产者和行列步队就没有直接联系 而是将发送的交流机 交流机再把转发到对应绑定的行列步队上 此处须要详细熟习rabbitmq的事情流程 不清楚可以找干系资料进行学习

上面说了 Exchange 作为rabbitmq的一个独特的主要的观点 这里有必要着重强调一下 我们从 spring对rabbitmq的封装来解读一下这个东西
上面是 交流机类型的定义类 解释了6种交流机类型 末了一种由于即将弃用 所以是五种 我们常用的有四种 下面这个建造类解释了统统
这四种的解释
Direct: 先策略匹配到对应绑定的行列步队后 才会被投送到该行列步队 交流机跟行列步队必须是精确的对应关系 这种最为大略
Topic: 转发紧张是根据通配符。 在这种交流机下,行列步队和交流机的绑定会定义一种路由模式,那么,通配符就要在这种路由模式和路由键之间匹配后交流性能力转发 这种可以认为是Direct 的灵巧版
Headers:也是根据规则匹配, 相较于 direct 和 topic 固定地利用 routingkey , headers 则是一个自定义匹配规则的类型
在行列步队与交流器绑定时 会设定一组键值对规则 中也包括一组键值对( headers 属性) 当这些键值对有一对 或全部匹配时 被投送到对应行列步队
Fanout : 广播模式 不管路由键或者是路由模式 会把发给绑定给它的全部行列步队 如果配置了routingkey会被忽略
springboot集成rabbitmq
在熟习了干系观点后我们开始搞一搞这个东西 首先你要安装好rabbitmq 干系方法资料很多 此处不表 在本机安装好 并启用了管理页面后打开 localhost:15672 会显示一个管理页面 如下 可以进行一些可视化操作
新建springboot工程 springboot 版本 1.5.10 依赖如下
application.yml 配置文件 rabbitmq 干系:
定制模版类 声明交流机 行列步队 绑定交流机到行列步队
这里 声明了Direct 交流机 并通过路由键绑定到一个行列步队中 来测试Direct模式
声明了Fanout交流机 并绑定到2个行列步队 来测试广播模式
编写监听器 来监听行列步队
编写 发送接口 来进行测试
测试广播模式
掌握台输出
同样 自己可以测试Direct模式 可以打开rabbitmq掌握台进行追踪 干系运行信息
配套源码 :https://gitee.com/felord/springboot-message