【高并发解决思路】

【高并发解决思路】

1. 高并发解决思路

    高并发指的是两方面。
    第一方面 指同一时刻有大量的请求访问系统。
    第二方面 指的是大量的请求并行访问系统,注意并行并不是同一时刻,但有个指标是一秒内能处理的请求数量。

    当大量请求短时间内涌入系统的时候,我们第一时间能想到的是提升机器的性能。如何提升呢? 就是提升硬件,提升单机性能,比如说从8核提升到16核,从8G提升到16。

    但是这样的提升毕竟有限。我们可以部署多台机器来分担压力,也就是常用的负载均衡。这也需要你的项目支持负载均衡的方式部署。比如引入redis来统一存储session。

   如果单机能承载的请求能力有限,远远达不到上线怎么办?我们就需要解决一些性能瓶颈,比如数据库,大部分应用瓶颈都在数据库,所以我们一般会采用读写分离、分库分表、多主多从架构等方式提升数据库的能力,但是数据库毕竟是对磁盘的操作,速度远远慢于CPU运转的速度,所以我们要将数据尽可能的存在内存当中,虽然内存速度也慢于CPU速度,但是远远大于磁盘的速度,这时候就需要引入缓存机制,这就是大家最长使用的手段。

   先访问缓存,缓存中没有在访问数据库,然后存入缓存,这里就是问题就是缓存一致性这里我们可以通过订阅binlog日志或者MQ的方式保证其数据最终一致性。

   Redis虽然单机性能很高,但为了支持高并发,我们一般都需要将其部署为集群,到这里系统已经能具备很高的处理能力了 ,但是有一些问题,就是不管怎样一个业务假设最大处理能力就是一秒一万,但是有一秒百万的请求过来怎么样,这时候就想到了mq,先把请求放入mq,大家排着队,然后在出口处根据处理能力来消费,当然结果往往是需要用户等一会,比如支付场景、抢购场景、秒杀场景等等。这种一样叫做高并发解决方案。

   同样的思路如果我得处理能力有限,只能做到承载1万的流量,但是有百万请求怎么办?这就需要用到限流,让流量1万1万的过来即可,这时候就有人问了因为用户访问的入口往往是统一的,入口扛不住怎么办? 这就需要使用DNS负载均衡 ,将同一个域名访问分发到不同的服务器处理,那么除了上述方案,其实还有一些比如CDN,我们将静态资源放入CDN中加快访问,并且不消耗应用服务器的性能,比如搜索使用ES,比如架构设计,微服务架构中,将系统进行拆分,每一个模块独立部署网关集群化,组件集群化等等的思路。

   当然代码方面也有,在代码方面,我们可以通过开多个现成的方式,提高系统的处理能力,通过连接池的方式降低数据库的连接,远程调用连接频繁创建的开销,如果遇到同一时刻的请求,有资源竞争的情况,也就是说有线程安全的问题,这时候可以使用分布式锁,使用分布式锁是为了适应集群环境,当然有时候锁的方式会影响性能。同样可以使用MQ的方式来避免锁的使用。

   当然还有很多方式,总结起来就是缓存、队列、拆分、加服务器、池化等等方式。

相关推荐

  1. 并发解决思路

    2024-05-02 19:08:04       17 阅读
  2. Python 并发解决方案有哪些?

    2024-05-02 19:08:04       14 阅读
  3. Fastadmin解决异步并发并发阻塞超时问题

    2024-05-02 19:08:04       16 阅读
  4. 并发系统中面临的问题 及 解决方案

    2024-05-02 19:08:04       5 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-02 19:08:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-02 19:08:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-02 19:08:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-02 19:08:04       20 阅读

热门阅读

  1. 关于开源软件的影响力的探讨

    2024-05-02 19:08:04       17 阅读
  2. HTML_CSS学习:CSSLearning

    2024-05-02 19:08:04       18 阅读
  3. JPA 如何修改 联表查询返回的Map

    2024-05-02 19:08:04       16 阅读
  4. 4月26日划分字母区间+合并区间

    2024-05-02 19:08:04       14 阅读
  5. Element-UI快速入门

    2024-05-02 19:08:04       15 阅读
  6. 两分钟“手撕”Object类

    2024-05-02 19:08:04       13 阅读