高并发
高并发指的是:在同时或极短时间内,有大量的请求到达服务端,每个请求都需要服务端耗费资源进行处理,并做出相应的反馈。
服务端处理请求需要耗费服务端的资源,比如能同时开启的 进程数
、能同时运行的 线程数
、网络连接数
、 cpu
、I/O
、内存
等等,由于服务端资源是有限的,那么服务端能同时处理的请求也是有限的。
高并发问题的本质就是:资源的有限性
高并发带来的问题:服务端的处理和响应会越来越慢,甚至会丢弃部分请求不予处理,更严重的会导致服务端崩溃。
处理的思路
客户端
- 尽量减少请求数量,比如:依靠客户端自身的缓存或处理能力
- 尽量减少对服务端资源的不必要耗费,比如:重复使用某些资源,如连接池
基本原则就是:能不访问服务端就不要访问
服务端
- 增加资源供给,比如:更大的网络带宽,使用更高配置的服务器,使用高性能的Web服务器,使用高性能的数据库
- 请求分流,比如:使用集群,分布式的系统架构
- 应用优化,比如:使用更高效的编程语言,优化处理业务逻辑的算法,优化访问数据库的SQL
基本原则:分而治之,并提高单个请求的处理速度
处理的方法
处理高并发的三板斧: 缓存、降级和限流!
- 应用层:扩容、动静分离、缓存、服务降级和限流
- 数据库:读写分离、分库分表
当前内容版权归 Hayden Yang 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Hayden Yang .