- 高并发也就是系统访问用户增多,流量增大,导致服务器压力增大,出现性能瓶颈。
- 硬件方面:单体应用垂直扩容,如果服务器配置太低,升级服务器配置。
- 单体应用水平扩容,部署应用集群,负载均衡分流。
- 分布式redis缓存,主从架构+集群+哨兵,还可以再添加本地缓存,减少网络的请求IO。
- 数据库垂直拆分,数据库查询的最小单位是页,默认16k,如果一个表的字段太多,那么读进内存的行数就会少,会增加读的IO次数,把大表字段根据业务拆分多张表。数据库水平拆分,分表,行数减少降低了索引的层数,提高查询速度。像每天增加几千万的话,有钱就直接上TIDB吧,无限水平扩展和高可用性。
- 消息队列异步,缩短流程执行时间,消息队列削峰,平缓处理请求,避免系统因瞬间的巨大压力而压垮
- 网关结合redis令牌桶,根据ip,根据用户id,根据方法名限流。
- 线程池也减少资源消耗,提升系统性能。
- 代码性能优化,例如complateTableFuture并行执行,初始化map大小等。
- sql性能分析与调优。尽量走到索引,避免慢sql。
上一篇
CompletableFuture
并行执行
2022-10-23
下一篇
模板模式 + 策略模式
工作中常用的模板 + 策略模式
2022-10-19