架构师训练营第六周总结

用户头像
跨域刀
关注
发布于: 2020 年 07 月 15 日

这两周没有时间,只是回顾了下上周的内容:

分布式缓存一般都是通过hash表(key,value)进行存储。访问的复杂度是O(1)

key 随机整数值或者唯一的地址url, 图片内容就是value。



hash表中的数组存放的是数据在内存中的地址



缓存的关键指标

缓存命中率,查多少次中得到正确结果的概率

缓存键 key越少,缓存的效率越高



缓存可用内存空间

内存空间越大,缓冲命中率越高,因为内存中存的数据多了,就不用替换掉已存在的存储对象,直接加入新的缓存对象就可以了,避免到数据库查询。



缓存对象生存空间

数据在缓存中的存活时间越长,不需要因其他原因如修改价格等发生改变。



代理缓存:静态资源可以把网上的服务器放到公司的网络代理服务器上。员工只需要访问公司的服务器就可以访问到新闻。---代理用户的服务器



反向代理缓存

公司外的用户想访问互联网访问到公司服务器。可以在公司数据中心代理所有应用服务器的访问。这样外面的客户就可以访问反向代理服务器就可以拿到自己的数据了,不需要访问应用服务器。

反向代理可以在前端WEB应用服务器之前,也可以在前端WEB应用服务器与微服务器之间 (动态的信息) --restfull对反向代理服务器有好处



内容分发网络(CDN) -- 放在网络供应商那里

登录网站的行为是动态的,到公司的服务器

访问静态数据的话,可以到CDN服务器缓冲上找



通读缓存:代理缓存,反向代理缓存,CDN缓存  -- 访问的是缓存不是原始服务器数据。

旁路缓存:先到缓存中找,没有的话就到原始服务器访问并将相关数据存放到缓存服务器中。 -- 当数据被更新后,则告诉缓冲服务器数据失效,直接delete,然后等下一次用户访问,再从原始服务器中读取新数据到缓冲服务器。

旁路缓存:浏览器对象缓存,本地对象缓存

本地对象缓存构建分布式集群 -- 通过keyvalue更新,导致几个服务器之间通信占用本来就不多的资源,就被淘汰了

改为分布式对象缓存:访问远程的分布式对象缓存集群,每个缓存服务器存放的数据不一样,使得缓冲量随着服务器的增加而增长。 -- memched通过路由算法及keyvalue到需要的服务器,每台服务器不会互相感知



分布式:水平伸缩,很多服务器构建的系统,如分布式应用服务器,分布式nosql。

集群:分布式的子类,特质相同功能或角色的一组服务器构成了集群。



memched使用一致性hash来进行本次的keyvalue分配



大型网站采用的是数据链路层负载均衡

只改把用户的网卡地址改为负载均衡服务器的MAC地址,使得响应用户不再有网络传输压力,因为绕过了负载均衡服务器,不给负载均衡服务器传输压力,实现了应用服务到用户传输数据。

新版本的Linux支持lvs负载均衡

负载均衡要搞懂:1、请求发送到哪台服务器上用负载均衡,负载均衡算法;2、怎么分发,通过修改Mac地址。



集群目的是分摊负载,所以服务器之间的session不能占用太多网络。



互联网高可用行表现在关闭/更新任意一台或多台服务器,都不影响客户正常使用。



数据库分布

主a1+从a1+从a2+从a3...... 主b1+从b1+从b2+从b3.....



特点:1、只有一台主数据库有写操作;2、从服务器数量的增加,可以使读操作并发能力增加;3、更新表结构,忌讳DDL操作,线下手动一台一台操作。



用户头像

跨域刀

关注

还未添加个人签名 2020.03.18 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第六周总结