高并发解决思路
参考并做个记录。
高并发主要就是为了提高QPS,降低RT。并且同时保证数据的正确性、系统的可用性就OK了。
1、网站并发量上来了?啥都不要管,先扩容,堆机器。机器多了自然需要集群技术、负载均衡了。(提升QPS)
2、机器多了也扛不住了?服务拆分,把集中式部署改成分布式部署。(提升QPS)
3、分布式了还是扛不住?先做降级,再做限流。(保证系统可用性)
4、数据库扛不住了?上分布式缓存。(降低RT)
5、缓存上了之后,数据还是扛不住?那就考虑读写分离、分库分表、数据库容灾。
6、系统间同步交互有延迟?解耦,上异步方案,采用消息中间件。(降低RT)
7、高并发导致了脏数据?上分布式锁。(保证数据正确性)
8、高并发导致了数据不一致?上分布式事务。(保证数据正确性)
架构从来都不是设计出来的,是演进出来的。不要不设计,也不要过度设计。系统流量上来了,先直接扩容而不是上来就搞很复杂的架构。