消息中间件那点事

简介: 消息中间件存在于大大小小的企业,不管是数据持久、还是缓存都是一道利器。

背景

系统的稳定性一直以来是所有企业研发人员所追求的,当出现系统问题时,这时候可以通过日志、系统监控、性能指标等来进行排查,但系统的复杂性、分布式、高并发等导致了很多信息的堆积,这个时候,可能对于工作人员来说,是一件非常头痛的事情。消息中间件,英文简称 MQ,这个名词的出现,可以解决很多事情:比如:复杂的业务中通过 MQ 来减少频繁的业务交互。高并发下,不必及时处理的事务都可以交给 MQ。交易过程中,更是存在很多的事务处理,如果长时间保持长链接以及锁的状态,很有可能造成锁表、锁库,形成死锁。这时候也需要 MQ 来进行消息的缓冲、异步进行,保证系统的稳定、持续的进行下去。不会因为死锁等长时间的循环而导致 cpu、内存的增耗,从而避免出现服务挂掉、宕机等问题。




形形色色的 MQ

事实上,消息中间件的种类越来越多:RabbitMQ、RocketMQ、Kafka 等等。下面给出了一张表展示各种 MQ 特点:

mq01.png

说到这,大家可能要说,还有一种中间件:Redis,的确,Redis 也作为一种中间件,一般用来作为缓存中间件。缓存一些信息,以便数据信息共享、也可以利用其来实现分布式锁,例如实现秒杀、抢单等功能。还会被用作一些订单信息的缓存,防止大量的订单信息被积压而导致服务器的负载很高。总之,Redis 常被用来作为一种缓冲剂使用。

除了上面说的,消息中间件还可以用来抢红包,交易系统的账单记录、流程推送、通知等等。Redis 作为缓存处理器,它的使用,大大的提升了应用的性能与效率,特别是在查询数据的层面上,大大降低了查询数据库的频率。但这也带来了一些问题,其中比较典型的,比如:缓存穿透、缓存击穿、缓存雪崩。

什么是缓存穿透呢?

我们先来看看缓存的查询流程:前端发来请求查询数据时,后端首先会在缓存 Redis 中查询,如果查询到数据,直接返回给前端,流程结束;如果在缓存中未查到数据,则前往数据库查找,此时查询数据后返回给前端,同时会塞进缓存中。还有一种可能就是:查询数据库未查到数据时,会直接返回 NULL。 这种情况下,如果用户不停滴发起请求时,恶意提供数据库中不存在的信息,则在数据库中查到的数据永远都是 NULL。这种数据是不会被塞进缓存的,这种的数据永远会被从数据库中访问,即为恶意攻击式,则很有可能对数据库造成极大的压力,搞哭数据库。这个过程被称为:缓存穿透。缓存永远被直接穿透而直接访问数据库。

解决方案

目前对于缓存穿透,比较典型的解决方案是:当在数据库查询未找到时,将 NULL 返给前端,同时,会将 NULL 塞入缓存,并对对应的 Key 设置一定的过期时间。 这种处理方式在电商的话,用到的较多。

什么是缓存击穿呢?

缓存击穿,是指缓存中某个 Key 在不停的、频繁的被请求,当这个 Key 在某个时刻失效时,持续的高并发请求就会击穿缓存,直接请求数据库,导致数据库的压力在那一时刻猛增。就像水滴石穿

解决方案

既然这种 key 会被不停的访问、请求,那么可以将其有效期设为一万年,这样,不停的高并发请求,就永不会落在数据库层。

什么是缓存雪崩呢?

缓存雪崩,是指在某个时刻,缓存的 key 集体发生失效,这样导致大量的查询请求落在了数据库层,导致数据库负载过高,甚至会压垮数据库。

解决方案

雪崩的现象,主要在于大量的 key 在同一时刻处于失效状态,所以为了避免这种情况:一般会为 key 设置不同的、随机的失效时间,错开缓存中 key 的失效时间点,从而最终减少数据库压力。

相关文章
|
5天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
4052 12
|
16天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
11634 137
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
4天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
1420 7
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
6天前
|
人工智能 自然语言处理 数据挖掘
零基础30分钟搞定 Claude Code,这一步90%的人直接跳过了
本文直击Claude Code使用痛点,提供零基础30分钟上手指南:强调必须配置“工作上下文”(about-me.md+anti-ai-style.md)、采用Cowork/Code模式、建立标准文件结构、用提问式提示词驱动AI理解→规划→执行。附可复制模板与真实项目启动法,助你将Claude从聊天工具升级为高效执行系统。
|
5天前
|
人工智能 定位技术
Claude Code源码泄露:8大隐藏功能曝光
2026年3月,Anthropic因配置失误致Claude Code超51万行源码泄露,意外促成“被动开源”。代码中藏有8大未发布功能,揭示其向“超级智能体”演进的完整蓝图,引发AI编程领域震动。(239字)
2324 9

热门文章

最新文章