美文网首页一些收藏技术原理高并发
如何设计一个高并发系统

如何设计一个高并发系统

作者: 会微积分的猫_9370 | 来源:发表于2022-07-10 23:20 被阅读0次

什么是高并发

高并发(High Concurrency)是指通过设计保证系统能够同时并行处理很多请求。

常用指标有:

  • QPS,每秒响应请求数
  • TPS,每秒响应事务数
  • RT,响应时间,系统对请求做出响应的时间
  • Concurrency,并发数,系统同时能处理的请求数量
  • 吞吐量:单位时间内处理的请求数量

提高并发的思路

  • 降低 RT
  • 提高 Concurrency

如何降低 RT

  • 升级服务器和数据库硬件配置,最简单粗暴且有效的手段,但是硬件能带来的提升是有上限的
  • 服务端引入缓存,缓存分为本地缓存和分布式缓存,可显著降低查询接口的响应时间
  • 购买 CDN 服务,将图片、html、css、js等静态资源上传到 CDN,可显著降低用户打开页面的响应时间
  • 业务优化,比如流程拆分,将实时性要求低的流程写入消息队列进行异步处理,将互相独立的流程并行处理;数据预加载;避免热点数据;索引优化;JVM 优化等

如何提高 Concurrency

  • 使用反向代理 Nginx,可以大大的提高服务的并发数,一般可以达到 10w 并发数,此时单机数据库会出现瓶颈
  • 数据库读写分离,数据库使用主从模式,对一致性要求低的查询请求可以走从库,分担主库压力
  • 数据库分库分表,把不同业务的数据放到不同的数据库中,如果单表数据量过大,可以进行分表存储。分库分表可以显著提升数据库查询的效率
  • 使用负载均技术 LVS/F5,此时 Nginx 已经成为瓶颈,多加一层 Nginx 会影响 RT,所以一般会使用更高效的负载均衡软件 LVS 或者硬件 F5,此时并发数可以上升到几十万
  • 使用 DNS 负载均衡,可以在域名下面绑定多个虚拟IP,每个虚拟 IP 指向一个机房,此时并发数已经来到百万、千万甚至亿的级别,服务入口的并发数将不在是瓶颈。

架构图

世上没有万能的架构,需要根据实际情况进行权衡。


image.png

相关文章

  • 如何设计一个高并发系统

    整理了设计高并发系统的15个锦囊,相信大家看完会有帮助的。 如何理解高并发系统 所谓设计高并发系统,就是设计一个系...

  • 常见系统架构设计

    feed流设计 如何打造千万级Feed流系统Feed 流系统设计总纲 秒杀类的高并发设计 高并发系统的设计及秒杀实...

  • 秒杀系统开发(一)

    本文部分内容来自 【PHP秒杀系统 高并发高性能的极致挑战】 目标 如何设计和实现秒杀系统? 实现系统的高并发、高...

  • 高并发架构设计

    面对高并发你怎么处理? 如何设计一个高并发高可用系统? 如何限流?工作中是怎么做的?说一下具体实现? 如何熔断?熔...

  • 06.如何应对高并发

    如何应对高并发 什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素...

  • 如何处理高并发和单点故障

    如何设计一个高并发系统? 如果你确实有真才实学,在互联网公司里,干过高并发系统,那你拿Offer,基本如探囊取物一...

  • 可扩展系统就得这么设计

    前面分享了高并发系统(高并发系统设计)以及高可用系统(高可用系统)的解决方案,今天我们再来看另一个很重要的模块,可...

  • 面试必考:秒杀系统的9个核心知识点,一次性打包给你!

    前言 高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从...

  • 秒杀系统设计

    前言 高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从...

  • 接招吧!最强 “高并发” 系统设计 46 连问,分分钟秒杀一众面

    接招吧!最强 “高并发” 系统设计 46 连问,分分钟秒杀一众面试者! 谈起 “高并发” 系统设计相关知识,我想你...

网友评论

    本文标题:如何设计一个高并发系统

    本文链接:https://www.haomeiwen.com/subject/dgdnbrtx.html