高并发环境的技术架构 [TOC] ## 一、业务系统 ### 1. 代码优化 根据业务逻辑对代码进行优化。 ### 2. 水平拆分 部署服务器集群,通过负载均衡将请求压力均匀的分摊到每台服务器上。 ### 3. 垂直拆分 将系统根据不同的业务拆分为单独的服务。例如用户模块拆分为用户子系统。 ## 二、数据库层 ### 1. 分库分表 #### 1.1 垂直拆分 根据业务将不同的数据表拆分出来,例如user表单独拆分出来放在其他的数据库中,两个库应该在不同服务器上。 #### 1.2 水平拆分 将数据量较大的数据表,按照适合的业务规则(如id、hash、时间等)单独拆分出一个子数据库 ### 2. 读写分离 配置主从数据库,让主库负责写操作,从库负责读操作,将数据库压力在分摊出去。 ## 三、缓存层 大多数的高并发环境中都是读多写少,可以将数据在缓存和数据库中都保存一份,而redis单机可以承受几万的并发,这样数据的读请求就可以不经过数据库,直接走缓存,将数据库的压力减小到最低。 ## 四、消息队列 ### 1. 削峰填谷 当数据库写压力过大时,可以加入消息中间件技术,也就是MQ集群,通过削峰填谷将可以异步写的请求添加到消息队列中,再以数据库可以承载的并发量写入。 ## 五、静态资源 #### 1. 压缩 #### 2. CDN缓存 将静态资源经过压缩后,全部使用CDN缓存请求 2020-02-01 高并发 展开评论