高并发


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

文章作者: Adbo
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Adbo !
评论
  目录