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

news2024/11/20 8:44:15

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.coloradmin.cn/o/830481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【k8s】二进制部署k8s

二进制部署k8s 1.操作系统初始化配置2.部署etcd集群3.部署docker引擎4.部署Master组件4.部署 Worker Node 组件 二进制搭建 Kubernetes v1.20 k8s集群master01:192.168.80.10 kube-apiserver kube-controller-manager kube-scheduler etcd k8s集群master02&#xf…

前端实现打印1 - 使用 iframe 实现 并 分页打印

目录 打印代码对话框预览打印预览 打印代码 <!-- 打印 --> <template><el-dialogtitle"打印":visible.sync"dialogVisible"width"50%"top"7vh"append-to-bodyclose"handleClose"><div ref"print…

京东API分享:获取京东商品评论接口

接口名称&#xff1a;item_review-获得JD商品评论 接口背景介绍&#xff1a; 京东是一家中国知名的综合性电商平台&#xff0c;成立于1998年。作为中国最大的B2C在线零售商之一&#xff0c;京东提供了包括电子产品、家居用品、服装配饰、食品饮料等在内的广泛商品选择。为了…

防抖函数,定时的清除

什么是防抖函数 在某一个时间段内&#xff0c;一个函数频繁快速的调用&#xff0c;只执行最后一次的调用。 防抖函数实际应用场景 我们在执行一个数据搜索功能时&#xff0c;通过监听input框的值&#xff0c;值变化触发搜索&#xff0c; 如果我们在输入框输入"zhangsa…

使用 Simulink 进行 STM32 编程

目录 介绍 所需材料 步骤 1&#xff1a;在MATLAB中设置STM32-MAT软件路径步骤 2&#xff1a;在STM32CubeMX中创建一个项目步骤 3&#xff1a;配置时钟和 GPIO 引脚步骤 4&#xff1a;项目经理并生成代码步骤 5&#xff1a;在 Simulink 中创建模型步骤 6&#xff1a;在模型中插…

前端如何实现一个网站的桌面快捷方式

题记&#xff1a;我们工作中常常需要在我们的网站首页实现一个桌面快捷方式&#xff0c;那么我们怎么做呢&#xff1f; 图片展示&#xff1a; 代码实现&#xff1a; 第一步&#xff1a;获取路径与标题名&#xff1b; sName: document.title, sUrl: window.location.href 第二步…

Java版知识付费平台免费搭建 Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台qt

&#xfeff;Java版知识付费源码 Spring CloudSpring BootMybatisuniapp前后端分离实现知识付费平台 提供职业教育、企业培训、知识付费系统搭建服务。系统功能包含&#xff1a;录播课、直播课、题库、营销、公司组织架构、员工入职培训等。 提供私有化部署&#xff0c;免费售…

c++11 标准模板(STL)(std::basic_ofstream)(一)

定义于头文件 <fstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_ifstream : public std::basic_istream<CharT, Traits> 类模板 basic_ifstream 实现文件流上的高层输入操作。它将 std::basic_istrea…

【Selenimu+AutoIT】非input标签上传文件(带参数)

工具下载 非input标签上传文件&#xff0c;就需要借助第三方工具&#xff0c;如AutoIT。 AutoIT下载 安装步骤略 使用 1.打开Auto Window Info 找到这个打开 拖住红框里面的标到需要定位的地方记录下来 2.打开SciTE Script Editor 打开后&#xff0c;修改为UTF-8&am…

程序员有必要参加软考吗?

作为程序员&#xff0c;如果一直从事着前线的编程工作&#xff0c;是否会对身体造成负担&#xff0c;难以持续到35岁呢&#xff1f;毕竟在项目赶期时&#xff0c;工作强度很高&#xff0c;而技术也在不断变化&#xff0c;因此很多程序员在30岁前就开始转型。我曾见过很多焦虑自…

观察者模式——对象间的联动

1、简介 1.1、概述 在软件系统中&#xff0c;有些对象之间也存在类似交通信号灯和汽车之间的关系。一个对象的状态或行为的变化将导致其他对象的状态或行为也发生改变&#xff0c;它们之间将产生联动&#xff0c;正所谓“触一而牵百发”。为了更好地描述对象之间存在的这种一…

【C++】初阶 --- 引用(超级详细版!!!)

文章目录 &#x1f36a;一、引用的概念&#x1f36a;二、引用的特性&#x1f37f;1、引用在定义时必须初始化&#x1f37f;2、一个变量可以有多个引用&#x1f37f;3、引用一旦引用一个实体&#xff0c;再不能引用其他实体 &#x1f36a;三、常引用(被const 修饰的引用)&#x…

idea打开传统eclipse项目

打开传统web项目 1.打开后选择项目文件 2.选择项目结构 3.设置jdk版本 4.导入当前项目模块 5.选择eclipse 6. 设置保存目录 7.右键模块&#xff0c;添加spring和web文件 8. 设置web目录之类的&#xff0c;并且创建打包工具 9.如果有本地lib&#xff0c;添加为库 最后点击应用&…

【linux】Linux桌面应用程序快捷方式

在linux系统里&#xff0c;很多应用程序虽然有对应的版本&#xff0c;但是下载了之后发现打开方式并不友好&#xff0c;比如&#xff0c;今天下载了DataGrip&#xff0c;打开文件夹才发现它里面有这些&#xff1a; 红框内的脚本是其正确的打开方式。每次你都要执行&#xff1a…

一篇文了解SHA2代码签名

在当今数字时代&#xff0c;各种网络隐私安全威胁层出不穷&#xff0c;对此&#xff0c;我们也采取了很多安全措施。SHA2代码签名作为一种非常重要的安全措施&#xff0c;它有助于确保软件代码和文件的完整性和真实性。那么你知道SHA2代码签名是什么&#xff1f;它的原理是什么…

天线辐射机制

电磁场如何从源中产生并最终脱离天线辐射到自由空间中去的呢&#xff1f;让我们首先来研究一下一些基本的辐射源。 1、单线Single Wire 导线是一种电荷运动产生电流特性的材料&#xff0c;假设用qv&#xff08;库仑/m3&#xff09;表示的一个电体积电荷密度均匀分布在一个横截…

云安全攻防(五)之 容器基础设施所面临的风险

容器基础设施所面临的风险 容器基础设施面临的风险 我们从容器镜像、活动容器、容器网络、容器管理程序接口、宿主机操作和软件漏洞六个方面来分析容器基础设施可能面临的风险 容器镜像存在的风险 所有容器都来自容器镜像。与虚拟机镜像不同的是&#xff0c;容器镜像是一个不…

基于埋点日志数据的网络流量统计 - PV、UV

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 一、 网站总流量数统计 - PV 1. 需求分析 2. 代码实现 方式一 方式二 方式三&#xff1a;使用process算子实现 方式四&#xff1a;使用process算子实现 二、网站独立访客数统计 - UV 1. …

新闻稿代写软件有哪些?聪明灵犀工具助你撰写合格新闻稿

新闻稿代写软件有哪些&#xff1f;新闻稿是一种重要的宣传工具&#xff0c;但是撰写优秀的新闻稿需要一定的写作技巧和经验。幸运的是&#xff0c;现在有许多新闻稿代写软件可供使用&#xff0c;这些工具可以帮助你撰写出更优质的新闻稿。本文将介绍一些常用的新闻稿代写软件以…

【性能调优-实例演示】CPU爆了怎么定位问题--》调试指令性能分析工具

性能调优 定位生产性能问题 生产环境&#xff0c;CPU Memory 告警 top&#xff1a;找出占CPU比较高的进程${pid}&#xff08;内存增长&#xff0c;CPU居高不下&#xff09;top -Hp ${pid}&#xff1a;显示所有线程的CPU占比&#xff0c;观察进程中的线程&#xff0c;找出哪个…