穿越Java - SpringCloud篇 第八章 消息队列服务 - RabbitMQ | 第1节 RabbitMQ 入门

开发环境

基于:IntelliJ IDEAMaven构建工具JDK1.8SpringBoot 2.3.4Spring4.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高级消息队列协议。

在这里插入图片描述

工作流程

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

猜你喜欢

转载自blog.csdn.net/weixin_47371330/article/details/109396987