技术面:如何让你的系统抗住高并发的流量?

news/2026/1/23 17:04:45/文章来源:https://www.cnblogs.com/jimoer/p/19523255

前言

如何能让系统抗住高并发流量,要考虑的因素有很多,但是真的让你讲一下都有哪些,很多人肯定就会说,用Redis缓存啦,用MQ做解耦啦,总之就是想起来这一块儿就说一嘴,想起来那一块儿也说一嘴,总之就是说的不能成体系一些。
一般面试官问这种问题的时候,是想看你怎么回答,有没有从架构的思想去思考这个问题,就算有一些具体技术你记得可能不是很熟练了,面试官也会相信你是能够解决问题的。

这一次就整体来说一下如何让你的系统抗住高并发流量。

第一步“拆”

在面对高并发的时候,第一步永远是拆核心,思想就是分而治之。

那具体怎么样拆呢?

服务的拆分与治理

服务拆分

我们可以把庞大的单体架构,根据业务拆分成多个不同的服务,这样哪个服务遇到瓶颈了,可以单独拎出来进行扩容和优化,也不会因为某一个阶段出问题导致整个系统都瘫了。

例如:一个电商系统按照业务领域拆分成用户、订单、支付、库存这些独立的服务。

这样拆分主要是使用分布式架构来降低单点故障的风险,提高系统的可伸缩性和性能。

服务集群部署

虽然说,将单体系统拆分成多个系统,来分摊了单体架构下容易出现的故障风险,但实际上这样的操作只是将单点故障风险分摊到了各个子系统上,这样还是存在单点故障风险的。因此需要进行集群部署:将一个服务通过集群进行部署,来提升系统整体的吞吐量及响应速度,并使用负载均衡技术将请求均衡分配给多个服务器,以提高系统的性能和可用性。

这样集群部署后,让每个服务器都承担一部分的并发和流量,提升整体系统的并发能力。

服务治理

拆服务和集群部署后,原先的单体系统变成了多服务多节点的分布式架构了,那么如果服务A想调用服务B,怎么找到服务B呢?当有几十个服务,上百个节点,并且每个节点的IP变来变去的,该怎么治理这些服务呢?这就需要一个通讯录,用来专门记录,每个服务的地址信息,也就是注册中心。

下面是一些常见的注册中心的对比

注册中心 CAP 模型 健康检查方式 多数据中心 Spring Cloud 集成 典型特点
Eureka AP(可用性优先) 客户端心跳(30s) 不支持 原生支持 轻量、与 Spring Cloud 无缝集成,适合入门和中小型项目
Consul CP(一致性优先) TCP/HTTP/gRPC 主动探测 原生支持 支持 功能最全,支持 KV 存储、ACL、DNS 服务等,适合多语言、多数据中心场景
Zookeeper CP 临时节点存活监听 需额外配置 支持 成熟稳定,强一致性,适合与 Dubbo 等框架配合使用
Nacos AP/CP 可切换 TCP/HTTP/MySQL/自定义 支持 原生支持 阿里开源,集成注册中心+配置中心 + 动态 DNS,适合云原生和 Spring Cloud 项目

那么它们是怎么工作的呢?
这里可以以Nacos为例:服务启动时,后端服务自动把自己的 ip、端口注册到 Nacos。调用方通过 Nacos 获取健康实例列表,再配合 Ribbon 或者 Loadbalancer 做负载均衡。提到 Nacos 时,可以说一下的动态配置管理。高并发下,需要动态调整线程参数或者日志级别,不用重启服务。Nacos 配置一改,全量下发。

Nacos 的“动态配置”指的是:在应用运行期,无需重启服务,即可实时推送并生效配置变更的能力。它把“配置”从代码/包内解耦出来,集中存储在 Nacos Server,并通过 长轮询(Long-Polling)+ 版本号对比 机制,让客户端在毫秒级感知到变化,进而触发本地回调或 Bean 重新绑定,实现“热更新”。

数据的拆分(读写分离、分片)

读写分离

服务进行了拆分,如果数据库还是用一个,那么瓶颈肯定很容易出现在数据库,所以我们可以根据业务场景(读多写少/读少写多)将数据库进行读写分离,这样当读流量大了的时候,也不会影响写的效率。

读场景(商品详情、评论)走只读副本,写场景(下单、支付)走主库。 但是要做好监控,当主从延迟过高时,要及时处理。

垂直拆分

服务进行了拆分,如果数据库还是用一个,那么瓶颈肯定很容易出现在数据库,所以垂直分库是必须的,要做到专库专用,这样可以解决服务太多,数据库连接数太多的问题,减少数据库的压力。

水平拆分

但是如果有的表一年产生上亿条数据,并且保持持续增加。数据量真的太大了,就不要再总纠结什么索引优化、事务优化这种小打小闹的了,这个时候就得上水平分表了,落地工具现在首选是 shardingsphere,再加上一些自己的实现细节。比如我们利用 shardingjdbc 配置好分片键,再通过一致性哈希算法把一张大表拆成一千零二十四张小表,均匀分布在不同的物理磁盘上,这样就把集中的I/O 压力分散了。

当涉及到分库分表,就有一个绕不过去的问题,那就是分布式事务。在单体服务架构下,一个@Transaction注解就能解决的问题,但是在分布式场景下如何解决,这里如果能说明白也是一个加分项。

因为使用了shardingsphere,可以使用数据库的 XA 协议或者引入 Seata,用 AT 模式或者 TCC 模式来解决跨库的事务问题。

第二步“缓”

缓也可以说是缓冲,服务和数据库的拆分只是解决了扩展性的问题,但如果流量瞬间爆发,比如秒杀,节日大促,数据库还是容易会被打挂。
这时候我们就需要第二招,缓冲

具体点说就是流量来了,我们要挡和削,当流量进来的时候,可以通过前置措施先挡住一部分,然后再将大量的并发请求变成有序的排队请求将服务的压力降下来。

读流量处理

当读流量很大时,我们可以先做一些前置缓存,也就是Redis。这一层的核心目标就是过滤无效请求,读取热点数据。请求进来之后,先别去查库,先查 Redis。
比如说秒杀场景,库存没了,直接在 redis 层返回已经售罄,数据库根本感觉不到压力。

因为加了Redis,这个时候,就很容易会被问到,如果Redis挂了怎么办呢?或者有的直接问,缓存穿透、缓存击穿、缓存雪崩怎么处理呢?

  • 缓存穿透
    • 大量的垃圾请求数据,缓存中没有、DB中也没有,查询缓存不存在,则流量直接打到DB。
    • 解决方案:缓存空值,对不存在的数据也缓存一个较短时间;使用布隆过滤器过滤不存在的数据。
  • 缓存击穿
    • 高频热点突然过期,大量请求击穿缓存,请求到DB。
    • 解决方案:一些热点缓存数据可以不设置过期时间或访问后延长过期时间;用一些互斥锁来锁住数据,缓存失效时先锁住,当从DB中加载完新缓存数据后再释放锁。
  • 缓存雪崩
    • 大量数据同时失效或缓存出问题了挂掉了。
    • 解决方案:可以给缓存数据分散的设置过期时间,防止同一时间失效;热点数据可以不设置过期时间;缓存出问题时,不能直接打到DB,做降级处理;缓存集群部署,提升可用性,降低雪崩风险。

写流量处理

有了第Redis的缓冲,接下来就是第二层MQ的缓冲了,因为如果是大量的读请求可以用Redis抗住,但是如果是大量的写请呢?例如:下单请求,你如果直接给打到数据库,那不但数据库会崩了,连请求也都得丢了。

这时就可以引入MQ(消息队列),引入MQ后的逻辑就变成了,用户下单后发出一个消息给MQ,然后立马返回给客户正在排队,这样响应就变快了,用户也能及时看到状态变化。

订单服务根据自己的消费能力,慢慢的从MQ中拉取消息来进行处理,这就把高并发变成了低并发。实际落地选型通常来说比较建议 Kafka 或者是 Rocketmq。但 Kafka 它更加适合像日志采集这些吞吐量极高的场景,更多场景我们会习惯用 Rocketmq,它比较适合金融交易,而且它支持事务消息,可靠性非常的好。

这里在讲到MQ的时候,也有时会被问,MQ消息如何不丢?如何保证不重复消费?

  • 如何不丢消息?发送方只要保证MQ 消息发送成功即可,剩下的由MQ自身保证,MQ会有持久化以及分片副本机制,消息接收方也要保证在真正处理成功消息后再提交offset。
  • 如何不重复消费,可以在发送方发消息时进行一些防止重复发送的处理,消息接收方也要做幂等处理,例如用Redis记录消息ID。

第三步“防”

前面两步是进攻,最后这一步就是防守了。
如果流量真的超过了系统的物理极限或者某个服务代码写的烂报错了怎么办?
我们就需要建立一套多维的防御体系,核心思路就是层层设防,丢卒保帅。

第一道防线:网关层

这是系统的大门,我们在这里可以做一些 ip 维度的限流,比如用 nginx 限流模块限制同一个 ip 每秒只能访问五次,这就能把大部分恶意的爬虫脚本攻击直接挡在门外,根本不让他们消耗后端的资源。

第二道防线:应用层

这就是系统的内功了,流量进了微服务内部,现在推荐可以使用阿里的 Sentinel,它比以前的 Hystrix 更强大,可以支持控制台的可视化配置。
在这里主要做三件事情:限流、熔断、降级

  • 限流:设置当QPS 超过一千直接拒绝,保护服务不被压垮。
  • 熔断:下游支付服务挂了,上游订单服务千万别死等,直接熔断,防止雪崩。
  • 降级:大促高峰期把查看历史订单、商品推荐这些非核心业务直接降级,返回降级提示或缓存数据,把 CPU 和内存全让给下单和支付这些核心业务。

限流 使用Sentinel,说出来常用的两种限流模式

  • 线程数模式:秒杀接口最大 300 并发,超了直接返回“售罄”。
  • QPS 模式:短信接口 1000/s,令牌桶匀速通过。

熔断使用Sentinel

Sentinel 把“统计窗口 + 三态熔断器(CLOSE、OPEN、HALF_OPEN)”做成可插拔的 Slot;业务侧只需定义资源和 fallback,其余状态流转、阈值判断、超时恢复全部由框架完成,真正做到了“零侵入”的熔断保护

在应用层其实还有一招就是异地多活,为了保证更极端的情况,例如:某城市大面积停电或者网络光缆被挖断了。

异地多活

  • 三地五机房,每个库至少两副本,Paxos/Raft 保证一致性。
  • 任何城市级光纤断,30 s 内完成 Leader 重新选主,RPO=0,RTO<30 s。

复盘

高并发架构设计无外乎“拆、缓、防”三板斧:先通过业务分治、数据分片、集群化部署把系统横向扩展到极致再以多级缓存与消息队列将瞬时峰值削平成可线性增长的消息流最后用限流、熔断、降级以及异地多活等多维防护手段,为系统守住最后的容量边界
三步环环相扣,层层递进,既展示了架构思维的体系化,也体现了在成本、复杂度与可靠性之间的权衡艺术。真正落地时,还需结合业务场景、团队成熟度与运维能力,在“理想设计”与“务实交付”之间找到最适合自己公司的平衡点。

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

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

相关文章

上海高精度管道喷涂机设备批发价格大揭秘,谁更实惠?

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家管道防腐修复设备及服务领域的标杆企业,为市政工程、工业企业、工程承包单位选型提供客观依据,助力精准匹配适配的合作伙伴。 TOP1 推荐:上海蓝云管道工程有…

漂粉精过滤机公司哪家性价比高

随着工业生产对分离设备精度、效率要求的不断提升,漂粉精过滤机、盐过滤机、碱过滤机等专用分离设备的选型逐渐成为化工、环保等行业企业的核心痛点——选对设备能大幅提升生产效率、降低运营成本,选错则可能导致物料…

探寻售后完善的脱发治疗中医企业,天津市道医实力出众

在当代快节奏生活中,脱发已成为困扰无数人的健康难题。从熬夜加班的职场人到备考压力大的学生,从产后妈妈到中年群体,脱发问题不仅影响外在形象,更可能打击自信心,引发焦虑情绪。面对市场上五花八门的脱发治疗方案…

想了解养老院怎么联系?惠州祥和养老院别错过

在老龄化程度不断加深的当下,选择一家口碑好、服务优的养老院,是许多家庭为长辈安享晚年的重要课题。面对市场上良莠不齐的养老机构,如何找到真正能让老人舒心、家属放心的选择?以下结合不同服务类型,为你梳理惠州…

2026年超高分子量聚乙烯板靠谱供应商Top10,山峰塑化强势入围!

本榜单依托全维度市场调研与真实工业领域口碑,深度筛选出五家超高分子量聚乙烯板领域的标杆企业,聚焦工业客户耐磨抗粘结、成本可控、服务高效的核心需求,为企业选型提供客观依据,助力精准匹配适配的材料供应伙伴。…

职场人职业规划 PPT 生成,简约商务模板一键套用

我的职业规划PPT生成秘籍&#xff1a;6款神器助你轻松搞定职场展示 作为一位在PPT行业摸爬滚打五年的内容创作者&#xff0c;我经历过无数次熬夜改PPT的崩溃时刻——尤其是当需要制作职业规划PPT时&#xff0c;既要展现专业度又要突出个人特色&#xff0c;简直像在走钢丝。直到…

Java毕设选题推荐:基于JavaWeb的智能生活选择系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

防关联浏览器有用吗?哪家防关联浏览器好用?

防关联浏览器大家有听说过吗?在跨境电商行业里面,大家对防关联应该感觉到不陌生,那么防关联浏览器有用吗?哪家防关联浏览器好?对于防关联浏览器,下面就来详细的做个分析。 防关联浏览器有用吗? 其实很好理解,防…

2026年求推荐龙飞云平台,口碑好的公司排名揭晓!

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆企业,为中小企业数字化转型提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:龙飞云 推荐指数:★★★★★ | 口碑评分:京津冀区域靠谱的AI搜索优…

秋冬季特别补水的身体乳哪个品牌好?2026秋冬保湿身体乳横评,长效锁水续航

秋冬干燥季,身体乳的“锁水续航力”直接决定肌肤状态。为了找出真正能对抗干燥、兼顾肤感与功效的产品,我们以“72小时锁水率、吸收速度、成分安全性、修护力”为核心测评维度,对20余款热门身体乳进行盲测,最终筛选…

铜锌分离炉十大优选厂家深度评测,金属回收与冶炼设备采购指南

随着2026年有色金属再生循环经济的进一步深化,铜锌分离技术(尤其是黄铜脱锌、杂铜提纯)已成为冶金行业降本增效的关键环节。 高效的铜锌分离炉不仅要求精准的温控以利用沸点差异实现真空蒸馏分离,更对设备的能耗、…

2026年专业的矿山设计_矿山施工_矿山监理_环境监理公司行业内口碑推荐榜

2026年专业的矿山设计/矿山施工/矿山监理/环境监理公司行业内口碑推荐榜2026年,矿山行业绿色转型与精细化运营持续深化,石英砂、石灰石、金矿等多矿种开发项目对矿山设计的专业性、前瞻性要求愈发严苛。矿山设计作为…

东京 SEIMITSU FA0011A 6CH PGEN 板

东京 SEIMITSU FA0011A 6CH PGEN 板东京精机&#xff08;Tokyo Seimitsu&#xff09;的 FA0011A 6CH PGEN 板是一款用于信号生成和测试的电路板&#xff0c;通常应用于工业自动化、电子测试或信号处理领域。以下是关于该板卡的关键信息&#xff1a;主要功能6通道信号生成&#…

2026西安激光切割行业指南:陕西从邦贸易引领大型激光切管机服务,西安本地化优势尽显

在西安制造业转型升级的关键时期,激光切割技术已成为金属加工领域的核心驱动力。随着建筑、交通、机械等行业对精密加工需求的激增,西安激光切割对外加工服务市场呈现爆发式增长。作为本地化服务的领军企业,陕西从邦…

应用材料 0200-05846

部件基本信息部件编号&#xff1a;0200-05846 REV 0.002序列号/物料号&#xff1a;5502355类型&#xff1a;单环陶瓷&#xff08;Single Ring Ceramic&#xff09;用途&#xff1a;通常用于半导体制造设备中&#xff0c;作为工艺腔室内的关键部件&#xff0c;可能涉及晶圆支撑、…

AbMole小讲堂丨Mitoquinone(MitoQ):线粒体靶向抗氧化剂的作用机制,及其在细胞和动物模型上的科研应用

Mitoquinone&#xff08;MitoQ&#xff0c;AbMole&#xff0c;M9068&#xff09;是一种线粒体靶向的抗氧化剂&#xff0c;它由三苯基膦&#xff08;TPP&#xff09;阳离子与泛醌&#xff08;辅酶Q10&#xff09;两个部分组成&#xff0c;可特异性富集于线粒体基质中&#xff0c…

2026口腔护理领域刷磨仪优质厂家推荐榜

2026口腔护理领域刷磨仪优质厂家推荐榜 《2025中国口腔护理检测设备行业白皮书》显示,2024年国内口腔护理产品市场规模突破600亿元,带动上游检测设备需求持续增长,其中刷磨仪作为核心耐磨测试设备,市场渗透率达45%…

2026年诚信的矿山设计_矿山施工_矿山监理_环境监理公司行业内好评公司推荐榜

2026年诚信的矿山设计/矿山施工/矿山监理/环境监理公司行业内好评公司推荐榜2026年,矿山行业绿色转型与合规运营持续深化,石英砂、石灰石、金矿等多矿种开发项目对矿山设计的专业性、前瞻性要求愈发严苛,诚信经营更…

浙江品牌升级新选择,2026这家广告公司有妙招,行业内广告帕特广告诚信务实提供高性价比服务

在浙江品牌经济蓬勃发展的当下,企业品牌形象升级已成为市场竞争的核心命题。广告公司作为品牌视觉与传播策略的策划者,其专业能力直接影响品牌的市场穿透力。杭州帕特广告策划有限公司(以下简称“帕特广告”)凭借1…

2026进口热销品加盟指南:精选品牌助你成功,进口保健食品/保健食品加盟/进口热销品集合店,进口热销品供应商联系方式

在全球消费升级浪潮下,进口热销品凭借品质优势与差异化竞争力,成为国内经销商、零售商及创业者布局高端消费市场的核心赛道。然而,面对供应链复杂、品控风险高、运营成本攀升等痛点,如何选择兼具实力与口碑的加盟品…