一 、服务器
- 服务拆分
利用微服务技术将服务进行拆分,将业务分散到不同的服务中,进行服务熔断,保证核心功能可用,及时有部分非核心服务宕机,依然可以提供主要服务
- 分布式技术
将服务部署多份实例,使用负载均衡分散单个节点压力
- 缓存技术
使用内存数据库,如redis对热点数据进行缓存,提高响应速度,服务对数据库的访问频率,提高业务处理速度
- 代码优化
对代码进行优化,如:删除多余无用业务逻辑;看循环中的查询等业务能否提取到循环外;使用ThreadLocal缓存对单次请求数据进行缓存;对不可变对象使用对象池技术,如线程池,连接池等;使用多线程优化业务处理;使用AOP技术处理切面代码
- 优化SQL
对SQL进行优化,加索引,分析查询性能等
- 优化数据库
分库分表,对数据库进行横向、纵向拆分,读写分离
- 动静分离
将静态资源,如HTML、CSS、JS单独部署,使用图片服务器保存图片
- MQ技术
使用消息中间件处理可以异步处理的请求,如短信验证码、注册成功送积分、发邮件等,完成主业务逻辑后直接返回成功,大大提交响应速度,进而提高并发能力。还可以将请求放入到中间件中进行串行处理,防止大量请求造成服务崩溃
- 限流
通过IP、用户等对客户端请求进行限流、降级,提高网站并发、可用性
二、客户端
- 尽量缓存一些安全级别低的数据
- 代码中做好数据校验,必填字段缺少禁止发送请求到后端