:::tips 解决高并发问题从宏观角度来说有3个方向:
- 提高单机并发:尽可能减小业务接口的RT(ResponseTime响应时间),提升单机性能和并发能力
- 水平扩展:将热点服务水平扩展,做好负载均衡,提高整个集群的并发能力
- 服务保护:做好服务熔断、降级保护措施,提高服务的高可用性
其中,水平扩展和服务保护侧重的是运维层面的处理,而提高单机并发能力侧重的则是业务层面的处理,也就是我们程序员通过编码来提升业务的单机并发能力 :::
提高单机并发
:::tips 在服务器性能固定的情况下,想要提高单机并发能力就需要尽可能缩短业务时间(ResponseTime),而对响应时间影响最大的往往是对数据库的操作,从数据库角度来说,业务无非是做读和写两种操作,因此,需要考虑从读、写两方面优化代码:
- 读优化:
- 优化代码和SQL语句
- 使用Redis缓存高频数据
- 写优化:
优点:
- 写缓存速度快,大大减少响应时间
- 降低了数据库写频率和写次数,减轻数据库并发压力
缺点:
- 实现相对复杂
- 依赖缓存系统可靠性
- 不支持事务和复杂业务
场景:
- 写频率较高、写业务相对简单的场景 :::