第五周学习总结
本周主要学习了分布式缓存。
缓存主要分两种:通读缓存、旁路缓存、浏览器对象缓存和本地对象缓存。
在分布式缓存中,主要学习了memcached集群的一致性hash算法。以及Redis原生集群的桶算法。对于算法最重要的不是记住算法怎么实现,而是学习其设计思想。
这两种算法的设计思想,与开闭原则和依赖倒置很相似。读写缓存是与稳定的虚拟节点关联,是对修改的关闭,而真实服务器像是对虚拟节点的实现,高层模块依赖抽象的虚拟节点。
另一个重点内容是负载均衡服务器的介绍。
从反向代理负载均衡,到IP负载均衡、再到数据链路层负载均衡。也是架构一步步的演进和优化。
IP负载均衡优化了反向代理时重新组合TCP/IP数据包再转发的缺陷,通过直接修改每个数据包中的源地址和目标地址来完成转发。但是没有解决的问题是,集群中的服务器返回数据时,都需要通过负载均衡服务器返给客户端,这样使得负载均衡服务器成为了性能的瓶颈。
数据链路层负载均衡,通过修改mac地址来决定去哪台应用服务器,应用服务器处理完之后由于源地址没有改变,可以直接返回给客户端。
可以看到每一步的优化,其实都是对http协议更深的应用。要想成为架构师对技术实现的原理必须要掌握的足够清楚。嗯,该去补一补Http的相关知识了。
评论