144-RabbitMQ总结

1.作用

异步 削峰 解耦

2.流程图 + 各组件的介绍

144-RabbitMQ总结_第1张图片

144-RabbitMQ总结_第2张图片

144-RabbitMQ总结_第3张图片

 144-RabbitMQ总结_第4张图片

3.交换机类型

3.1direct 根据直接匹配

消息头中的路由键 与 交换机与队列绑定关系中的绑定键 一样时 才 被交换机发送到该队列144-RabbitMQ总结_第5张图片

3.2fanout

不管 路由键与绑定键 直接发送到 该交换机绑定的所有队列

144-RabbitMQ总结_第6张图片

3.3 topic

消息头中的路由键 与 交换机与队列绑定关系中的绑定键模糊匹配 可以前后模糊都行

144-RabbitMQ总结_第7张图片

小demo图如下 

144-RabbitMQ总结_第8张图片

4.客户端上演示

144-RabbitMQ总结_第9张图片

 144-RabbitMQ总结_第10张图片

 144-RabbitMQ总结_第11张图片

 144-RabbitMQ总结_第12张图片

 144-RabbitMQ总结_第13张图片

5.代码中实现

下面图片中大致包含了这些东西 :引依赖 添加 主机,端口, 虚拟主机 的配置  使用 

rabbitAdmin 创建交换机 队列 建立绑定 发送与 消费消息 

消息的序列化形式 需添加配置类 配置 一个 Bean :MessageConvertor 配置成通用json格式(这里没贴图)

144-RabbitMQ总结_第14张图片

 144-RabbitMQ总结_第15张图片

 144-RabbitMQ总结_第16张图片

 144-RabbitMQ总结_第17张图片

 144-RabbitMQ总结_第18张图片

 144-RabbitMQ总结_第19张图片

 144-RabbitMQ总结_第20张图片

 144-RabbitMQ总结_第21张图片

 144-RabbitMQ总结_第22张图片

 144-RabbitMQ总结_第23张图片

 144-RabbitMQ总结_第24张图片

6.可靠性投递

这是为了 保证消息在投递到 broker  => 交换机成功发送到队列 => 消费者所在服务成功监听到队列

并成功消费 的 三步 详细介绍如下三图

144-RabbitMQ总结_第25张图片

 144-RabbitMQ总结_第26张图片

 144-RabbitMQ总结_第27张图片

 代码 跟 MessageConvertor 一样 写在 我们项目里的MyRabbitConfig类里吧

confirmCallback

144-RabbitMQ总结_第28张图片

 一定要把确认消费的模式设置为 手动 默认是自动 自动的话 队列 中消息被消费者取到后 不管 消息是否成功消费 都会 从队列中被移除144-RabbitMQ总结_第29张图片

 144-RabbitMQ总结_第30张图片

 144-RabbitMQ总结_第31张图片

 模拟只手工确认接收部分消息144-RabbitMQ总结_第32张图片

 可以看到 有三个消息 没被确认接收 在 队列中状态还是ready的 这样消息就不会丢失144-RabbitMQ总结_第33张图片

 144-RabbitMQ总结_第34张图片

 然后returnCallback 与 ack这里就不贴图了 到时候直接百度 收

后面啥死信队列在秒杀用到时记录

你可能感兴趣的:(谷粒商城,rabbitmq,redis,缓存,布隆过滤器)