高并发问题如何解决?
该问题不是仅仅从单方面去考虑,应该从多角度去考虑;
思维导图:
架构层面:
微服务架构
服务细粒化,拆分服务,以减少某个服务压力;
服务集群化,直接缓解并发压力,但是要注意分布式锁;
接口访问压力:
(
负载均衡(nginx,微服务内Ribbon)—->直接分担压力,服务需要部署集群
Sentinel哨兵:限制一定QPS数量来访问,以缓解服务器接口压力
使用消息队列异步处理接口,缓解访问时间,以减小接口QPS
)
redis访问压力:
缓存击穿?
缓存穿透?
缓存雪崩?
数据库访问压力:
分表分库?
程序方面:
虚拟机优化,尽量优化好内存,减少程序运行时间,以达到最高运行效率。
做一些缓存,一级缓存
数据检索:使用搜索引擎,以达到减少程序运行时间
安全方面:
分布式锁,分布式事务
数据库锁