在应用开发过程中,经常会碰到一个词高并发,那么什么才叫高并发呢?
百度百科解释:
高并发(High Concurrency),通常是指通过设计保证系统能够同时并行处理很多请求。术语介绍通俗来讲,高并发是指在同一个时间点,有很多用户同时的访问同一 API 接口或者 Url 地址。它经常会发生在有大活跃用户量,用户高聚集的业务场景中。
所以根据解释,我们会有如下应对方案
架构设计方面:
- 增加机器节点(水平扩展)
- 增加机器配置(垂直扩展)
- 服务拆分,微服务
- 异步处理,提高吞吐
数据库设计方面
- 数据库集群,读写分离,主从复制方向(如mysql binlog模式)
- 数据库垂直切割,根据业务切割,减小单一库压力
- 数据库水平切割,数据分片处理(如基因法等)
- 使用缓存
缓存方面
- 使用缓存,缓存热点数据(如Redis、Memcached)
- 页面缓存,静态资源,数据缓存,分布式缓存,以及缓存更新策略等
应用自身代码方面
- 并发编程
- 懒加载应用
- 资源重复使用,代码架构合理
- 代码层面的异步处理
然后就是压测,得出系统支持的最大并发,做好应用限流操作,防止系统崩溃。
在面对高并发问题时,需要综合考虑架构设计、数据库设计、缓存技术和代码优化等多个方面,并根据具体情况选择合适的解决方案。