高并发解决方案

1. 应用和静态资源分离

将静态资源分离到静态站,对静态资源的请求打到静态站,增加动态站的请求处理量

2. 页面静态化、页面缓存

页面静态化是将程序生成的页面保存起来,使用模板技术如Freemarker和Velocity生成静态页面
Nginx缓存页面信息,再次请求时直接从缓存中获取,不需要重新生成,页面缓存内存中,提高访问速度

3. 集群,请求分流

具有相同处理功能的服务器组成集群,请求分发到各个服务器上

4. 分布式,业务拆解

业务细化,分解成不同的子业务,不同的业务放在不同的服务器上,提高请求的处理速度

5. 反向代理、负载均衡

Nginx负载均衡,内置策略,扩展策略
内置策略:IP Hash、加权轮询,扩展策略:fair策略、通用hash、一致性hash

6. CDN加速、CDN缓存

CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上

7. 缓存技术,如Memcache、Redis

8. 数据库优化

a. 表结构优化

b. SQL语句优化

I. 分区

将一张表中的数据按照一定规则分到不同的区中保存
https://www.cnblogs.com/mliudong/p/3625522.html

II. 分表

横向拆分(如按年、状态),纵向拆分(不常访问字段拆到新表,减少操作时锁定数据范围)

III. 索引优化
IV. 使用存储过程

存储过程只需要编译一次,把使用频率高的复杂操作放存储过程,避免每次操作数据时进行编译

V. 分离活跃数据

优先从活跃数据中进行操作,查不到再操作不活跃数据,减小数据范围

VI. 批量读取、延时修改
VII. 读写分离

读写分离,本质是对数据库进行集群,降低单台服务器的压力,主库写,底层同步到从库

8. 业务逻辑优化

你可能感兴趣的:(高并发)