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

项目技术栈-解决方案-消息队列

在这里插入图片描述

项目技术栈-解决方案-消息队列

  • 概念
  • 应用场景
    • 1. 异步处理
  • 参考文章
    • 消息队列(Message Queue)

概念

“消息”是在两台计算机间传送的数据单位。
消息可以非常简单,例如只包含文本字符串;
也可以更复杂 ,包括对象等。

队列是一种数据结构,先进先出,保证了顺序性。

生产者:发送消息的一端。用于把消息写入到队列中

消费者:从消息队列中,依次读取每条消息的一端。

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。

实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。

目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。

应用场景

1. 异步处理

场景说明:
用户注册后,需要发注册邮件和注册短信。传统的做法有两种

1.串行的方式;2.并行方式
(1)串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端
在这里插入图片描述
(2)并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间
在这里插入图片描述
假设三个业务节点每个使用50毫秒钟,不考虑网络等其他开销,则串行方式的时间是150毫秒,并行的时间可能是100毫秒。

因为CPU在单位时间内处理的请求数是一定的,假设CPU1秒内吞吐量是100次。则串行方式1秒内CPU可处理的请求量是7次(1000/150)。并行方式处理的请求量是10次(1000/100)

引入消息队列,将不是必须的业务逻辑,异步处理。
在这里插入图片描述
按照以上约定,用户的响应时间相当于是注册信息写入数据库的时间,也就是50毫秒。

注册邮件,发送短信写入消息队列后,直接返回,因此写入消息队列的速度很快,基本可以忽略,因此用户的响应时间可能是50毫秒。
因此架构改变后,系统的吞吐量提高到每秒20 QPS。比串行提高了3倍,比并行提高了两倍

参考文章

消息队列(Message Queue)

https://www.kancloud.cn/xianyunyehe/php_interview/1163797

相关文章:

项目技术栈-解决方案-消息队列

项目技术栈-解决方案-消息队列 概念应用场景1. 异步处理 参考文章消息队列(Message Queue) 概念 “消息”是在两台计算机间传送的数据单位。 消息可以非常简单,例如只包含文本字符串; 也可以更复杂 ,包括对象等。 队…...

【深度优先搜索】【图论】【推荐】332. 重新安排行程

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 深度优先搜索 图论 LeetCode332. 重新安排行程 给你一份航线列表 tickets ,其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK&a…...

DAY9-防病毒AV概述

DNS过滤 URL过滤和DNS过滤对比...

TCP缓存

TCP缓存是指TCP协议在数据传输过程中使用的一种机制,用于临时存储和管理数据包。它主要有三个作用:提高网络性能、保证数据的可靠性和实现流量控制。 首先,TCP缓存可以提高网络性能。当发送端发送数据时,TCP协议会将数据分割成若…...

Socket网络编程(一)——网络通信入门基本概念

目录 网络通信基本概念什么是网络?网络通信的基本架构什么是网络编程?7层网络模型-OSI模型什么是Socket?Socket的作用和组成Socket传输原理Socket与TCP、UDP的关系CS模型(Client-Server Application)报文段牛刀小试(TCP消息发送与接收&#…...

RTCA DO-178C 机载系统和设备认证中的软件注意事项-软件质量保证流程(八)

8.0 软件质量保证流程 SOFTWARE QUALITY ASSURANCE PROCESS 本节讨论软件质量保证 (SQA) 过程的目标和活动。 SQA 流程按照软件规划流程(参见 4)和软件质量保证计划(参见 11.5)的定义进行应用。 SQA 过程活动的输出记录在软件质量…...

K 个一组翻转链表 力扣

【玩转校招算法面试】第三天:链表中的节点每k个一组翻转(动画演示、手写 Java 代码、详细注释、LeetCode 高频算法题)_哔哩哔哩_bilibili 初始状态:1 -> 2 -> 3,pre null, cur 1保存当前节点的下一个节点&…...

Java毕业设计 基于SSM SpringBoot vue购物比价网站

Java毕业设计 基于SSM SpringBoot vue购物比价网站 SSM vue 购物比价网站 功能介绍 首页 图片轮播 商品 商品分类 商品详情 评论 收藏 商品攻略 商品信息 公告栏 在线反馈 登录 注册 个人中心 我的收藏 后台管理 登录 注册商品户 个人中心 修改密码 个人信息 商品户管理 用户…...

Linux按键输入实验-按键功能完善

一. 简介 前面一篇文章实现了 按键的字符设备驱动代码框架,文章地址如下: Linux按键输入实验-按键的字符设备驱动代码框架-CSDN博客 本文在 字符设备驱动框架实现的基础上,加入按键GPIO的初始化功能。 二. Linux按键输入实验-按键的GPIO…...

二分查找讲解

关于我为什么要写单独开一篇文章写二分,实际上那么多困难的算法,比如线段树,并查集等等都没有难倒我,我最近却被二分难倒了,而且是两次,两次在赛场上做不出来二分的应用题,于是我决定写一篇二分查找的算法总结.刚接触算法的时候本来是要写一篇的,但后面因为各种原因搁置了,现在…...

跨区域复制建筑UI输入框脚本迷你世界

--复制区域文件 --设置坐标起点,终点 --创建区域 --获取坐标id,data --星空露珠工作室制作 local pos1{x-16,y7,z28} local pos2{x28,y44,z-9} local block{num0} local str{} local str0{} local num0 local count0 local ui6 --几个输入框 local romath.random(…...

取消退出流程控制方法

在自动化设备动作流程中,人为任意想取消当前动作,常见方法是使用全局变量,实时检测变量决定退出。这里介绍一个System.Threading空间下的 CancellationTokenSource类,他可以设置超时,设置信息等封装 基本使用超时和手…...

力扣-跳跃游戏

问题 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 解答 class Solu…...

李沐动手学习深度学习——3.2练习

以下是个人理解,希望进行讨论求解。 练习 1. 如果我们将权重初始化为零,会发生什么。算法仍然有效吗? 根据SGD算法公式如上,第一次迭代的值可知w只与b相关,而对于b的迭代更新,只是与b的初始值相关&#x…...

代码随想录Day20 | Leetcode77 组合

题目 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ]示例 2: 输入:n 1, k 1 …...

Android Duplicate class 排除重复类

一、起因: 在迭代开发的时候,发现2个ijk很多类重复。但又2个库实现的功能是不一样,目前不能合并。但又想保留2个功能。需要排除其中一个库。 二、报错如何下图: 三、解决方法: 3.1 在terminal 也就是命令行处输入 …...

【Kubernetes】服务(Service)是什么?有什么用?有哪些类型?

系列文章目录 K8s中的Namespace是什么? Kubernetes 集群的组件介绍 Kubernetes 对象是什么? Pod——k8s中最重要的对象之一 Kubernetes 和 Docker 之间有什么区别? 部署安装 K8s 为什么要关闭 swap 分区? k8s中容器之间、pod之间…...

【前端素材】推荐优质后台管理系统DAdmin平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面,通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面,使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…...

Redis高级特性详解:事务处理、发布订阅、持久化和集群

Redis(Remote Dictionary Server)是一个开源的基于内存的数据结构存储系统,被广泛应用于缓存、队列、计数器等场景中。除了基本的键值存储功能外,Redis还提供了许多高级特性,包括事务处理、发布订阅、持久化和集群。在…...

nwjs做自动化测试

分别是2个常用的自动化测试化框架 GitHub - nwutils/nw-selenium-javascript-example: An example of end-to-end testing with Selenium for NW.js apps via JavaScript GitHub - nwutils/nw-puppeteer-example: An example of using NW.js via Puppeteer. 看习惯使用哪个&…...

3步开启你的离线OCR之旅:Umi-OCR文字识别全攻略

3步开启你的离线OCR之旅:Umi-OCR文字识别全攻略 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。 …...

OBS StreamFX插件完全指南:如何用免费插件打造专业直播画面

OBS StreamFX插件完全指南:如何用免费插件打造专业直播画面 【免费下载链接】obs-StreamFX StreamFX is a plugin for OBS Studio which adds many new effects, filters, sources, transitions and encoders! Be it 3D Transform, Blur, complex Masking, or even …...

[ZXMOTO 820RR-RS] [Ducati Panigale V2] [Yamaha YZF-R9]

ZXMOTO 820RR-RS Ducati Panigale V2 Yamaha YZF-R9...

Arduino TFT_eSPI库进阶玩法:用Sprite(精灵图)制作流畅动画和动态仪表盘

Arduino TFT_eSPI库进阶玩法:用Sprite(精灵图)制作流畅动画和动态仪表盘 当你在Arduino项目中使用TFT屏幕时,是否遇到过屏幕闪烁、刷新缓慢的问题?特别是在制作动态界面或动画效果时,直接操作屏幕往往会导致…...

Lychee Rerank MM惊艳效果:手写体图片Query匹配印刷体政策文档高分案例

Lychee Rerank MM惊艳效果:手写体图片Query匹配印刷体政策文档高分案例 1. 多模态重排序的技术突破 在传统的信息检索场景中,我们经常会遇到这样的困境:用户用手写的方式提出问题,而系统需要从海量的印刷体文档中找到最相关的答…...

大模型推理流式响应卡顿诊断指南(2024实时通信性能黄金阈值清单)

第一章:大模型推理流式响应卡顿诊断指南(2024实时通信性能黄金阈值清单) 2026奇点智能技术大会(https://ml-summit.org) 流式响应卡顿是大模型服务上线后最易被终端用户感知的体验断层,其根源往往横跨网络传输、推理引擎调度、GP…...

导入SQL文件后前端仍显示旧数据怎么办_数据库查询缓存刷新

MySQL 8.0 起已彻底移除 query_cache,清缓存操作无效;前端数据陈旧主因是应用层、中间件或浏览器/CDN 缓存,需逐层排查 HTTP 响应头、Nginx proxy_cache、框架视图缓存及 Redis 缓存一致性。MySQL 的 query_cache 已被移除,别白忙…...

2026 最新 从零搭建本地大模型 RAG 知识库问答系统:基于 Llama 3.2 8B 量化版 + LangChain+Chroma,全流程代码实操 + 踩坑指南

2026最新 从零搭建本地大模型RAG知识库问答系统:基于Llama 3.2 8B量化版LangChainChroma,全流程代码实操踩坑指南 【本文首发CSDN,未经授权禁止转载】 文章目录 文章目录2026最新 从零搭建本地大模型RAG知识库问答系统:基于Llam…...

Abaqus Cohesive单元疲劳损伤的UMAT实现与工程验证

1. 理解Cohesive单元与疲劳损伤的基础概念 我第一次接触Cohesive单元是在分析复合材料分层问题时。这种特殊的单元类型就像给材料内部装上了"微型传感器",能够精确捕捉界面处的力学行为。与传统的连续体单元不同,Cohesive单元通过牵引-分离法则…...

AI简历生成器落地手册(SITS2026内部白皮书节选):如何绕过算法偏见、规避关键词稀释、锁定TOP 100企业JD匹配逻辑

第一章:AI简历生成器落地手册(SITS2026内部白皮书节选):如何绕过算法偏见、规避关键词稀释、锁定TOP 100企业JD匹配逻辑 2026奇点智能技术大会(https://ml-summit.org) 识别并中和训练数据中的隐性偏见 AI简历生成器常因训练语料…...