SpringCloud-高级篇(二十一)

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

(1)消息堆积问题

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

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

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

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

(2)惰性队列

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

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

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

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

消费者:

发送者:

惰性对列直接到磁盘 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/679346.shtml

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

相关文章

HiveSQL——条件判断语句嵌套windows子句的应用

注:参考文章: SQL条件判断语句嵌套window子句的应用【易错点】--HiveSql面试题25_sql剁成嵌套判断-CSDN博客文章浏览阅读920次,点赞4次,收藏4次。0 需求分析需求:表如下user_idgood_namegoods_typerk1hadoop1011hive1…

JAVA设计模式之迭代器模式详解

迭代器模式 1 迭代器模式介绍 迭代器模式是我们学习一个设计时很少用到的、但编码实现时却经常使用到的行为型设计模式。在绝大多数编程语言中,迭代器已经成为一个基础的类库,直接用来遍历集合对象。在平时开发中,我们更多的是直接使用它&a…

解决 postman测试接口报404 Not Found

JDK版本:jdk17 IDEA版本:IntelliJ IDEA 2022.1.3 文章目录 问题描述原因分析解决方案 问题描述 当我使用postman测试接口时,报了 404 Not Found 的错误,报错截图如下所示 但我的后端程序中已经定义了该接口,如下所示 …

C语言指针2.0

1. 指针语法解剖 任意的指针,不管有多复杂,其定义都由两部分组成。 第1部分:指针所指向的数据类型,可以是任意的类型第2部分:指针的名字 char (*p1); // 第2部分:*p1; 第1部分:ch…

图像的重要属性

图像还具有以下重要属性: 旋转不变性(rotation invariance): 图像在发生旋转后,其重要特征和对象仍然能够被识别。 尺度不变性(Scale Invariance): 图像在缩放或尺度变化后&#xf…

分享76个时间日期JS特效,总有一款适合您

分享76个时间日期JS特效,总有一款适合您 76个时间日期JS特效下载链接:https://pan.baidu.com/s/1s7tPGT_ItK7dNK5_qbZkug?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,…

单片机——FLASH(2)

文章目录 flash (stm32f40x 41x的内存映射中区域详解)flash写数据时 flash (stm32f40x 41x的内存映射中区域详解) Main memory 主存储区 放置代码和常数 System memory 系统存储区 方式bootloader代码 OTP区 一次性可编程区 选项…

解决Typora导出HTML不显示图片

解决Typora导出HTML不显示图片 产生原因 Typora导出HTML不显示图片,可能时图片存放在我们的硬盘中。 我们可以将markdown中的图片转化为base64格式,嵌入到html中。 解决步骤 首先,下载 TyporaToBase64.jar 密码:45jq 其次,将…

Netty应用(五) 之 Netty引入 EventLoop

目录 第三章 Netty 1.什么是Netty? 2.为什么需要使用Netty? 3.Netty的发展历程 4.谁在使用Netty? 5.为什么上述这些分布式产品都使用Netty? 6.第一个Netty应用 7.如何理解Netty是NIO的封装 8.logback日志使用的加强 9.Ev…

无人机飞行原理,多旋翼无人机飞行原理详解

多旋翼无人机升空飞行的首要条件是动力,有了动力才能驱动旋粪旋转,才能产生克服重力所必需的升力。使旋翼产生升力,进而推动多旋翼无人机升空飞行的一套设备装置称为动力装置,包括多旋翼无人机的发动机以及保证发动机正常工作所必…

知识价值2-什么是IDE?新手用哪个IDE比较好?

IDE是集成开发环境(Integrated Development Environment)的缩写,是一种软件应用程序,旨在提供集成的工具集,以方便开发人员进行软件开发。IDE通常包括代码编辑器、编译器、调试器和其他工具,以支持软件开发…

Android java基础_类的继承

一.Android Java基础_类的继承 先封装一个persion类&#xff0c;在persion的基础上定义Student类&#xff0c;并基础persion类。 子类能访问父类的成员函数。 class Person {private int age;public void setAge(int age) {if (age < 0 || age > 200)age 0;else {thi…

【深度优先搜索】【树】【图论】2973. 树中每个节点放置的金币数目

作者推荐 视频算法专题 本博文涉及知识点 深度优先搜索 树 图论 分类讨论 LeetCode2973. 树中每个节点放置的金币数目 给你一棵 n 个节点的 无向 树&#xff0c;节点编号为 0 到 n - 1 &#xff0c;树的根节点在节点 0 处。同时给你一个长度为 n - 1 的二维整数数组 edges…

C++2024寒假J312实战班2.5

题目列表&#xff1a; #1多项式输出 #2龙虎斗 #3表达式求值 #4解密 #1多项式输出 这是第一个题目很简单&#xff0c;我也作对了。 我们下来看一下题目&#xff1a; 我们先来看一下样例&#xff1a; 5 100 -1 1 -3 0 10 首先100是第一项&#xff0c;所以不输出加号&…

【单片机】简单的自定义延时程序设计(代码演示)

前言 大家好吖&#xff0c;欢迎来到 YY 滴 单片机系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过单片机的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY…

突破编程_C++_面试(基础知识(11))

面试题34&#xff1a;什么是继承&#xff0c;它有哪些类型 继承是面向对象编程的一个基本概念&#xff0c;它允许一个类&#xff08;派生类、子类&#xff09;继承另一个类&#xff08;基类、父类&#xff09;的属性和方法。继承可以减少代码冗余&#xff0c;提高代码重用性&a…

【个人笔记】计算机网络五层结构理解

#纯属个人笔记 作为学习记录用途 #较多个人比较好理解的说法 可能不太准确 若发现错误 欢迎评论区指正 不希望误导小白 详细的概念请以书本的定义为准 目录 正片 传统的五层结构 如下&#xff1a; 物理层&#xff08;Physical Layer&#xff09;&#xff1a; 负责传输比特流…

C#阿里云消息列队推送消息

推送消息到队列 IMNS nativeclient new Aliyun.MNS.MNSClient(accessKeyId, accessKeySecret, endpoint, _stsToken);var nativeSend nativeclient.GetNativeTopic("SMQ");nativeSend.PublishMessage("推送消息内容"); 需要引用Aliyun.MNS.dll 下载地址…

【Linux】信号保存与信号捕捉处理

信号保存与信号捕捉 一、信号保存1. 信号的发送2. 理解信号保存&#xff08;1&#xff09;信号保存原因&#xff08;2&#xff09;信号保存概念 3. 信号保存系统接口&#xff08;1&#xff09;sigset_t&#xff08;2&#xff09;sigprocmask()&#xff08;3&#xff09;sigpend…

论文阅读-GROUP:一种聚焦于工作负载组行为的端到端多步预测方法

摘要 准确地预测工作负载可以使网络服务提供商实现应用程序的主动运行管理&#xff0c;确保服务质量和成本效益。对于云原生应用程序来说&#xff0c;多个容器协同处理用户请求&#xff0c;导致每个容器的工作负载变化受到工作负载组行为的影响。然而&#xff0c;现有方法主要…