当前位置: 首页 > news >正文

MQ(一)-MQ理论与消息中间件简介

MQ理论

  • 队列,是一种FIFO 先进先出的数据结构。消息:在不同应用程序之间传递的数据。将消息以队列的形式存储起来,并且在不同的应用程序之间进行传递,这就成了MessageQueue。
  • MQ通常三大作用: 异步、解耦、限流

Spring的事件发布机制有类似的功能、如创建监听ApplicationEvent的监听器、容器启动过程中、会发布多个ApplicationEvent, 监听器探测到后处理,具体模型如下:

在这里插入图片描述
AppContext为Producer, Event为Message、 Listener为consumer;Producer和Consumer他们的运行状况互不干涉,没有Consumer,Producer一样正常运行,反过来也一样。也就是说,推送Producer和Consumer正常工作的,只有发布的这些事件。这种方式就称为事件驱动

SpringBoot会将自己应用过程中发生的每一个重要的运行步骤都通过事件发送出来,全都在一个内部服务进程内;
若是想搭建监控中心、监控多个SpringBoot应用的运行信息, 因为跨服务、无法通过SpringBoot事件机制完成、所以需要一个中间服务、负责转发接收和转发这些SpringBoot的应用信息;

在这里插入图片描述
需要满足:

  1. 应用AppContext和监控服务是全解耦、即应用或者监控挂了,都不影响对方;
  2. 应用AppContext与监控服务解耦、即应用只需发消息给消息服务;
  3. 消息服务要协调控制流量、起限流作用;即应用可能一瞬间发海量消息、也可能不发消息、消息服务要控制这些消息、不会同一时刻发给监控服务(海量消息内存爆了);因此消息服务需要存储这些消息、让监控服务按照自己能力慢慢消费、起削峰限流作用;

引入消息服务衍生问题

  1. 分布式、微服务下是不允许存在单点故障的,需要保证消息服务高可用(搭建集群)
  2. 系统复杂度变更;
  3. 消息安全性问题;海量数据如何保存;如何不丢失;如何避免重复消息都等;

常见消息中间件有:RabbitMQ、RocketMQ、 Kafka;
在这里插入图片描述

http://www.lryc.cn/news/110355.html

相关文章:

  • vb与EXCEL的连接
  • java使用openOffice将excel转换pdf时,将所有列显示在一页
  • python数据容器
  • 【TypeScript】中定义与使用 Class 类的解读理解
  • 好用的数据库管理软件之idea(idea也有数据库???)
  • 《操作系统-李治军》测验错题集
  • DP-GAN-判别器代码
  • 基于多线程实现服务器并发
  • Golang之路---03 面向对象——接口与多态
  • 一条自由游动的鲸鱼
  • 将python源代码打包成.exe可执行文件
  • 【数据结构篇】手写双向链表、单向链表(超详细)
  • linux 中的串口驱动
  • 棱镜七彩正式加入龙蜥社区安全联盟(OASA)
  • STM32——STM32F401x系列标准库的下载+环境搭建+建工程步骤(更完整)
  • 基于ArcGIS土地利用量化人类活动的分析及模型构建
  • 特性Attribute
  • pyqt5, 如何在窗口上显示10个点地循环进度条。
  • VM里ubuntu虚拟无法启动
  • 信息学奥赛一本通——1156:求π的值
  • BI报表工具有哪些作用?奥威BI全面剖析数据
  • 【云原生K8s】初识Kubernetes的理论基础
  • javaAPI(三):jdk8之前的日期API
  • 驱动开发(中断)
  • TypeScript最新语法总结
  • sentinel组件
  • 26 MFC序列化函数
  • GC 深入(小白,对gc有一个进一步的了解)
  • CSS前端面试
  • VB+SQL餐饮管理系统设计与实现