作者
L的存在
说到后端开发,难免会遇到各种所谓高大上的「关键词」,对于我们应届生小白,难免会觉得比较陌生,因为在学校确实比较少遇见这些所谓高大上的东西,那么今天就带着学习的态度和大家分享这些看似可以装逼可以飞的带逼格的关键词吧。
大纲
分布式
在学校里的项目中,一个Web系统可能咋们一个人就搞定,因为几乎不考虑并发量,性能咋样,所谓「过得去」足矣,但是为了面试考虑,我们又不得不找点类似秒杀系统作为我们简历的支撑项目(即使已经烂大街)。那么先问你第一个问题,为什么就采用了分布式的方案落地这个项目?
当一个人或者几十个使用你的系统,哎呀我去,请求秒回,效果倍棒,于是乎简历砰砰写上却多么牛X,当面试官就会问你你这项目做了啥,测试过没,并发量如何,性能如何?你就…..
当访问系统的用户越来越多,可是我们的系统资源有限,所以需要更多的CPU和内存去处理用户的计算请求,当然也就要求更大的网络带宽去处理数据的传输,也需要更多的磁盘空间存储数据。
资源不够,消耗过度,服务器崩溃,系统也就不干活了,那么在这样的情况怎么处理?
垂直伸缩纵向生长。通过提升单台服务器的计算处理能力来抵抗更大的请求访问量。比如使用更快频率的CPU,更快的网卡,塞更多的磁盘等。其实这样的处理方式在电信,银行等企业比较常见,让摩托车变为小汽车,更强大的计算机,处理能力也就越强,但是对于运维而言也就越来越复杂。那真的就这样花钱买设备就完事了?
当然不,单台服务器的计算处理能力是有限的,而且也会严重受到计算机硬件水平的制约。
水平伸缩一台机器处理不过来,我就用多台廉价的机器合并同时处理,人多力量大嘛,通过多台服务器构成分布式集群从而提升系统的整体处理能力。这里说到了分布式,那我们看看分布式的成长过程
记住一句话:系统的技术架构是需求所驱动
最初的单体系统,只需要部分用户访问:
单体结构做系统的原因当然是有需求,有价值,可赚钱。随着使用系统的用户越来越多,这时候