架构师训练营 -week5- 学习总结

用户头像
晓-Michelle
关注
发布于: 2020 年 07 月 08 日
架构师训练营-week5-学习总结

缓存Cache与缓冲Buffer的分别:

缓存是介于数据访问者和数据源之间的一种高速存储,主要用于加快读取的速度。

缓冲也是一种高速存储,但是为了解决cpu与磁盘/网络读写速度不一致所设的。

缓存命中率:

指缓存能多少次重用同一个缓存响应业务请求,例:查询一个缓存,十次查询九次得到正确结构,则命中率为90%。

影响缓存命中率的主要指标:

缓存键集合:越小,命中率越高

缓存可用内存空间:能用的内存空间越大,能缓存的对象越多,命中率越高

缓存对象生存时间:生存时间越长,命中率越高

缓存的应用:

代理缓存、反向代理缓存、多层反向代理缓存、内容分发网络(cdn)、浏览器对象缓存、本地对象缓存、分布式对象缓存。

通读缓存:

给客户端返回缓存资源,并在请求未命中缓存时获取实际数据。代理缓存、反向代理缓存、多层反向代理缓存、cdn等都是通读缓存。

旁路缓存:

对象缓存时一种旁路缓存,旁路缓存通常是一个独立的键值对存储。浏览器对象缓存、本地对象缓存、分布式对象缓存都是旁路缓存。

缓存提升性能的原因:

缓存通常来自内存,比磁盘的数据有更快的访问速度。

缓存存储数据的最终结果形态,不需要中间计算,减少cpu资源的消耗。

缓存降低数据库、磁盘、网络的负载压力,使这些I/O设备获得更好的响应特性。

LRU算法:

Least Recently Used,每访问一个节点则将其提最近访问的热点数据。在缓存中,一段时间后,将一定比例的尾部数据清除,则剩下的就是热点数据。这个算法的缺点:1次访问与10000次访问是等效的。

一致性Hash算法:

为了解决增加或减少存储节点时,导致的大量数据失效的情况。

缓存雪崩:

在短时间内,大部分的缓存失效,导致数据库压力倍数增加而宕机,进而导致整个网站不可用。发生这种故障时,无法简单的重启缓存服务器、数据库服务器来恢复网站访问。

缓存穿透:

应用代码高并发请求某个不存在的数据,致使请求落到数据库上,致使数据库压力飙升乃至宕机。解决方案:可以将不存在的数据也缓存起来,设个短的失效时间(value设为null)。

注意:

频繁修改的数据,没必要用缓存。

没有热点的访问,没必要用缓存。

无法忍受短暂的数据不一致,不要用缓存。

Redis:

支持复杂的数据结构、支持多路复用异步I/O高性能、支持主从复制高可用(NoSQL)、原生集群与share nothing集群模式。

Redis 集群:

Redis集群预分好16384个桶(slot),当需要在集群中放置一个kv时,根据CRC16(key) mode 16384的值,决定将key放在哪个桶(slot)中。

集群把所有的物理节点映射到桶(slot)上,集群负责维护slot与服务器之间的映射关系。

客户端与Redis任何一个可用节点直连。

集群中的节点彼此互联。

消息队列与异步架构:

好处:

异步处理流程代码,提升处理性能、有更好的伸缩性、削峰填谷、失败隔离和自我修复、解耦。

主流MQ产品:

RabbitMQ(Erlang)、ActiveMQ(Java)、RocketMQ(Java)、Kafka(Scala)

负载均衡架构:

HTTP重定向负载均衡:

没有隔离应用服务器、暴露了公网ip、安全性低,用户请求需经过两次http请求、性能差。不推荐使用。

DNS负载均衡:

没有隔离应用服务器、暴露了公网ip,其中一台服务器宕机时,会影响用户请求。推荐使用两级负载均衡,dns负载均衡+负载均衡。

反向代理负载均衡:

常用于小型网站,由于转发的请求是http包,整个通讯过程比较长,会拖垮反向代理服务器。

IP负载均衡:

转发的是tcp包(小包),对性能影响较反向代理均衡要小,但响应的出口带宽会成为这个架构的瓶颈。

数据链路层负载均衡:

大型互联网站常用。

分布式数据库:

主从复制:

需要特别注意,增加字段时,最好在应用程序发布之前,分别在主、从服务器上增加字段。

删除字段时,先把应用程序中所有访问被删字段的sql都改一遍,确保不在访问时,再删数据库服务器上的字段。

主主复制:

同一时间内,只对一个主服务器中进行写操作。当其中一台宕机时,能快速切换到另一台主服务器,对另一台进行写操作。

宕机的那台主服务器开机后,则复制另一台主服务器的数据作为备份。

学习总结

这一周学的内容,涉及的内容很广,主要是缓存均衡架构、网路均衡架构与分布式数据库的运行原理。老师强调架构师要了解的是技术本身核心的内容与原理,了解技术最简单的一面,对不同的技术进行串联,组成一个符合期望的系统架构。

架构师就像是个一个积木搭建师,手边有很多的积木,但需要了解不同的积木特性,将积木按照自己的想法搭建起来,做成一个房子、一个堡垒。



发布于: 2020 年 07 月 08 日 阅读数: 28
用户头像

晓-Michelle

关注

还未添加个人签名 2020.05.30 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-week5-学习总结