课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,程序员的岗位分化也越来越细化,而今天我们就一起来了解一下,后端开发程序员如何学习分布式与缓存。
1、分布式
当访问系统的用户越来越多,可是我们的系统资源有限,所以需要更多的CPU和*内存*去处理用户的计算请求,当然也就要求更大的网络带宽去处理数据的传输,也需要更多的磁盘空间存储数据。资源不够,消耗过度,服务器崩溃,系统也就不干活了,那么在这样的情况怎么处理?
垂直伸缩
纵向生长。通过提升单台服务器的计算处理能力来抵抗更大的请求访问量。比如使用更快频率的CPU,更快的网卡,塞更多的磁盘等。其实这样的处理方式在电信,银行等企业比较常见,让摩托车变为小汽车,更强大的计算机,处理能力也就越强,但是对于运维而言也就越来越复杂。那真的就这样花钱买设备就完事了?
当然不,单台服务器的计算处理能力是有限的,而且也会严重受到计算机硬件水平的制约。
水平伸缩
一台机器处理不过来,我就用多台廉价的机器合并同时处理,人多力量大嘛,通过多台服务器构成分布式集群从而提升系统的整体处理能力。这里说到了分布式,那我们看看分布式的成长过程
记住一句话:系统的技术架构是需求所驱动
2、缓存架构
缓存可说是软件技术中的的杀手锏,无论是程序代码使用buffer,还是网络架构中使用缓存,虚拟机也会使用大量的缓存。其实初在CPU中也就开始使用缓存。缓存分为两种,一种是通读缓存,一种是旁路缓存
通读缓存
假设当前应用程序获取数据,如果数据存在于通读缓存中就直接返回。如果不存在于通读缓存,那么就访问数据源,同时将数据存放于缓存中。下次访问就直接从缓存直接获取。比较常见的为CDN和*反向代理*
CDN
CDN称为内容分发网络。想象我们京东购物的时候,假设我们在成都,如果买的东西在成都仓库有就直接给我们寄送过来,可能半天就到了,用户体验也非常好,就不用从北京再寄过来。同样的道理,用户就可以近距离获得自己需要的数据,既提高了响应速度,又节约了网络带宽和服务器资源。
旁路缓存
应用程序需要自己从数据源读取数据,然后将这个数据写入到旁路缓存中。这样,下次应用程序需要数据的
时候,就可以通过旁路缓存直接获得数据了
缓存的好处
因为大部分缓存的数据存储在内存中,相比于硬盘或者从网络中获取效率更高,响应时间更快,性能更好
通过CDN等通读缓存可以降低服务器的负载能力。
因为缓存通常会记录计算结果。如果缓存命中直接返回,否则需要进行大量的运算。所以使用缓存也减少了CPU的计算小号,加快处理速度
缓存缺点
我们缓存的数据来自源数据,如果源数据被修改了,俺么缓存数据很肯能也是被修改过的,成为脏数据,所以怎么办?
过期失效
在每次写入缓存数据的时候标记失效时间,读取数据的时候检查数据是否失效,如果失效了就重新从数据源获取数据。、
失效通知
应用程序在更新数据源的时候,通知清除缓存中的数据。
是不是数据使用缓存都有意义呢?
非也,通常放入缓存中的数据都是带有热点的数据,比如当日热卖商品,或者热门吃瓜新闻,这样将数据存放在缓存中,会被多次读取,从而缓存的命中率也会比较高
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。