开发环境
基于:IntelliJ IDEA
、Maven构建工具
、JDK1.8
、SpringBoot 2.3.4
、Spring4.3.28
编写。
官人如需使用 IDEA 请阅读教程:IntelliJ IDEA
官人如需使用 Maven 请阅读教程:Maven 构建工具的下载与安装
更多干货
请参考:《穿越 Java 之 语法基础篇》 系列文章
请参考:《穿越 Java 之 Web基础篇 》系列文章
请参考:《穿越 Java 之 开发必备框架篇 》 系列文章
请阅读:《穿越 Java 之 SpringBoot框架篇》系列文章
请阅读:《穿越 Java 之 SpringCloud微服务架构篇》 系列文章
官网
官方网址:https://www.rabbitmq.com/
安装
定义
- 用高效可靠的消息传递机制进行与平台无关的数据交流,并 基于数据通信来进行分布式系统的集成。通过提供消息传递和 消息队列模型,可以在分布式环境下扩展进程的通信。
基本特性
- 高可靠
- 灵活的路由
- 支持多客户端
- 集群与扩展性
- 高可用队列
- 权限管理
- 插件系统
- AMQP
解决问题?
- 解决消息通信,他是一个独立运行的服务,具有先进先现出等特点。
为什么要用MQ?
- 1. 能够实现异步的通信
- 2. 系统的解耦
虽然使用多线程也能解决解耦的问题,但是可能会面临内存泄漏的问题
所以考虑使用MQ,只要有用户发送订单的请求,我们就会发到MQ的服务器,由他们下游的业务系统去取走消息,就实现了系统之间的依赖关系的解耦。
- 3.流量削峰
解决并发,流量瞬间峰值的解决方案。就是先将所有的请求,转换成一个Mq的消息,发送到MQ的服务器。
场景如下图
缺点
- 系统复杂性变高了
- 系统的可用性降低,需要解决高可用
AMQP高级消息队列协议
他实现了AMQP高级消息队列协议。
扫描二维码关注公众号,回复:
12687547 查看本文章

工作流程
- 运行MQ的端口为5672 软件 和Bbrker(即中介)建立连接,用于存储转发,即这里的producer(生产者)发送的消息他不会直接到达队列他会先到达(EXchange交换机)本质是绑定列表),Queue (队列 )是用于存储消息的 放入Mnesia 数据库, TCP监听消息且里创建虚拟的Channel (是一个非常重要的接口)
- junior开头“ * ” 指一个单词
- netty开头“#”多个单词
- .jvm结尾