SpringCloud-高级篇(二十一)

news/2024/7/5 2:49:03

前面解决了消息的可靠性、消息的延迟问题,下面研究一下消息的堆积的问题: 

(1)消息堆积问题

消息产生堆积,上限后,最早的消息成为死信,有消息被丢弃,这对安全性较高的业务中是不行的,需要去解决消息堆积的问题。

前两种是消费者角度,第三种是队列的角度 ,提高队列的容积,可以缓解消息堆积问题

开启线程池也是有限制的,如果消息很多,需要开启很多很多线程,开启的线程很多对cpu是一种浪费,cpu需要在多个线程之间做上下文的切换,因此这种方案适合,这个消息处理的业务耗时比价长的情况,可以开多个线程,cpu可以并行处理多个业务

我们下面将一下第三种:扩大队列的容积

(2)惰性队列

我们知道MQ的队列是内存存储的,如果说在高并发的情况下,消息量非常大,达到数百万,这些消息都给他扔到内存中,显然是不合适的,我们要学习惰性队列去解决这个问题

对于传统的对类来讲,如果你没有开启消息的持久化,所有的消息都是在内存中的,其目的是加快消息投递的速度,优势就是响应速度快,也有一个问题就是在内存中存储有一个上限, mq会设置一个内存的预警值默认40%,如果在消息堆积的情况下,很容易达到消息的预警,此时mq就会处于一个暂停状态,会阻止生产者投递消息进来,会给这部分消息刷出到磁盘,清理一部分内存空间,这个动作叫做快照,所以呢会导致mq处于间歇性的暂停状态组织用户写入请求,所以mq的并发能力处于波浪形的忽高忽低的情况,性能不够稳定

惰性队列会把请求直接写入磁盘,很难触发mq的预警,性能会比较稳定,但是写磁盘性能不如内存,会带来一定的读写延迟 ,但是也再可以接收的范围内,消费者消费消息再从磁盘读,带来的还是性能损耗,带来延迟

把对列变成惰性队列,有两种

消费者:

发送者:

惰性对列直接到磁盘 

普通队列先发到内存,达到预警,刷出到磁盘 


http://lihuaxi.xjx100.cn/news/2024131.html

相关文章

深入挖掘AI应用场景的存储架构

深入挖掘AI应用场景的存储架构专题,需要从多个维度进行详细解读和分析。以下是一种可能的研究路径: 理解AI应用需求 数据类型与规模:AI应用通常涉及大量数据处理,包括结构化、非结构化和半结构化数据,且数据量呈现指数…

homework day6

第五章 静态成员与友元 一、填空题 1、一个类的头文件如下所示&#xff0c;num初始化值为5&#xff0c;程序产生对象T&#xff0c;且修改num为10&#xff0c;并使用show()函数输出num的值10。 #include <iostream.h> class Test { private: static int num; publi…

使用securecrt+xming通过x11访问ubuntu可视化程序

windows使用securecrtxming通过x11访问ubuntu可视化程序 windows机器IP&#xff1a;192.168.9.133 ubuntu-desktop20.04机器IP&#xff1a;192.168.9.190 windows下载xming并安装 按照图修改xming配置 开始->xming->Xlaunch 完成xming会在右下角后台运行 windows在…

JavaScript学习之旅10------掌握jQuery:实用应用案例深度解析

目录 写在开头1. jQuery基础知识回顾1.1. 选择器1.2. 事件1.3. 效果1.4. DOM操作1.5. AJAX 2. 实用应用案例分析2.1. 动态内容加载2.2. 表单验证2.3. 图像滑动门效果2.4. 创建动态导航菜单 3. 高级技巧与最佳实践3.1. 优化jQuery代码的性能3.2. jQuery插件的使用和自定义3.3. j…

游泳时可以听歌的耳机有哪些?戴游泳耳机有哪些好处?

游泳和跑步在某种程度上相似&#xff0c;特别是在短距离冲刺时&#xff0c;大脑似乎变得空白&#xff0c;而在中长距离的有氧运动中&#xff0c;身体感到疲劳&#xff0c;但大脑却异常清晰&#xff0c;时间却显得格外漫长。如何打发时间&#xff0c;让游泳锻炼变得不无聊&#…

Java微服务学习Day1

文章目录 认识微服务服务拆分及远程调用服务拆分服务远程调用提供者与消费者 Eureka注册中心介绍构建EurekaServer注册user-serviceorder-service完成服务拉取 Ribbon负载均衡介绍原理策略饥饿加载 Nacos注册中心介绍配置分级存储负载均衡环境隔离nacos注册中心原理 认识微服务…

【开源】SpringBoot框架开发APK检测管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 开放平台模块2.3 软件档案模块2.4 软件检测模块2.5 软件举报模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 开放平台表3.2.2 软件档案表3.2.3 软件检测表3.2.4 软件举报表 四、系统展示五、核心代…

HTTP 超文本传送协议

1 超文本传送协议 HTTP HTTP 是面向事务的 (transaction-oriented) 应用层协议。 使用 TCP 连接进行可靠的传送。 定义了浏览器与万维网服务器通信的格式和规则。 是万维网上能够可靠地交换文件&#xff08;包括文本、声音、图像等各种多媒体文件&#xff09;的重要基础。 H…