高并发系统的设计(1)

简历上写了有大数据、高并发、高可用、分布式系统的架构设计以及研发经验。
我把经验写一些。

系统的并发量高,怎么办? 多上几台服务器,搞个集群! 为什么要这么干呢?
从2g4核,换成32g64核,可以提高单机的性能,但是单机是有极限的,受制于硬件。
所以只能横向扩展, 一台不够用两台,两台不够用4台, 如果系统架构设置得当,横向扩展将非常容易,而且可以根据流量进行弹性扩容缩容
但横向扩展又会引入新的问题, 典型的CAP理论
Consistency(一致性): 客户端访问分布式系统时,每次访问到的结果都是一样的这个叫一致性

Availability(可用性): 保证访问不会出错,但不保证数据最新

Partition tolerance(分区容忍性): 分区(网络分区),网络是不稳定的,节点之间可能出现无法通讯的情况,在节点间不能通讯的时候,可以保证系统继续正常服务
这是一个不可能三角(既要有要),是逻辑上就没法实现。

一个超大规模集群系统,也是由一个个小的单体服务组成。
上千亿的访问量也是有一个一个访问构成的
经过多层负载均衡的分发,最终到达每个服务的访问量就小很多了

多层负载均衡:(我找到的资料有限,欢迎指正,欢迎提供更详细的资料)
①利用DNS负载均衡(CND):  将不同地区的不同用户的访问分发到不同的IP地址;
②通过布置F5,A10等专门的负载均衡设备到机房做负载均衡
③利用LVS或Nginx进行负载均衡

到Ngin之后就是我们要学习的高并发系统了

高并发: 利用不同的负载均衡策略,将高并发转为单个服务的低并发
但数据库和缓存无法使用负载均衡策略将高并发转为低并发
如果硬件有限,就想办法用空间换时间了, 限流,降级

高并发系统要解决的问题, 一个是服务的高并发, 一个是数据(db和缓存)。

你可能感兴趣的:(面试刷题,面试)