按并发量把系统分三类:小系统、高并发系统、资深大系统
一、小系统
百级别上千的并发,一台服务器随便搞,略过
二、高并发系统
核心使用redis+mq,基于阿里云很方便。
用nginx做负载均衡,应用需要就扩。
redis速度是mysql的1000倍,直接用集群,需要就扩。登录验证码啥的直接放redis。
再用mq削峰。mq开启持久化,数据不会丢。
流量与价格
此方案可以承受几万、几十万的qps,视场景定,大部分系统redis已经解决大部分流量,数据库的压力不大。
走redis缓存,mq慢慢更新,晚一点查到最新状态亦可接受,此时系统承受几十万qps都没问题。
做得好的话,3、4万的redis(不行就追加两三万),1w的mq已经能支撑几十万qps了,何况你接触到的系统有多少天是几十万qps呢。
三、资深大系统
上述高并发系统不能解决的,到这个量级的流量,已经有专门的团队了。可以数据库读写分离、分表、硬件负载均衡、DNS负载均衡。还会对数据库做优化,很多瓶颈还是数据库。
这资深大系统是12306、双十一啥的,流量都很大,大部分你能遇到的系统上面高并发就解决了。