第五周总结

用户头像
胡江涛
关注
发布于: 2020 年 07 月 05 日
第五周总结

本周四讲解的是分布式缓存的知识,周六讲解的是消息队列、异步架构、负载均衡的知识。

  1. 分布式缓存

分布式缓存中提到缓存无处不在,包括:CPU缓存,操作系统缓存,数据库缓存,JVM编译缓存,

CDN缓存,代理与反向代理缓存,前端缓存,应用程序缓存,分布式对象缓存。

同时还提到缓存可用的关键指标:缓存命中率

已经缓存命中率的主要指标:缓存键集合大小,缓存可使用内存空间,缓存对象生存时间。

  1. 消息队列

缓存是解决高访问的问题,而消息队列是为了解决大量数据同时写入的问题。

相对于同步调用,异步调用的方法优势很大很大。

优势包括:更好的伸缩,削峰填谷,失败隔离,自我修复,解耦

消息队列的产品,如下:

  1. 负载均衡

负载均衡有很多种,包括

HTTP重定向负载均衡:无状态,2次http请求,影响性能,IP地址暴露;这些缺点太明显,就被弃用了。



DNS负载均衡:IP会缓存在本地

域名解析出来的IP地址,是负载均衡服务器的IP地址,为了防止系统升级时,不能直接访问应用服务器,否则升级时,会导致旧的访问,可以使用两级负载均衡。



反向代理负载均衡: 因为反向代理服务器承载的缓存比较多,应对的规模是有限的,所有在小型网站中,应用的比较多。



IP负载均衡:运行过程中,源地址,目标地址的IP地址的会被修改2次,已达到目的。

但是由于网卡的出口带宽所限,不被广泛使用。



数据链路层负载均衡:大型互联网的方案

针对不同的内部机器,可以使用mac地址进行区分。

一般的小网站,使用反向代理负载均衡就够了,针对大型的网站,可以使用数据链路层负载均衡,如果再大的话,可以使用DNS负载均衡+数据链路层负载均衡,两层负载架构。



  1. 分布式数据

这里面提到了Mysql数据库的主从复制,其核心点在于主数据库的Binlog和从数据库的Relaylog,

由于DML的数据结构同步,比较耗时,一般只开放DML层面的数据库同步。



为了提高系统的高可用性,我们一般会使用主主复制的架构,对主数据库进行冗余架构。

当然,正常情况下,一般的架构都是包含主主复制和主从复制的,如下图。

对于DML层面的更新,比如新加一个字段、删除字段,

删除字段:先关闭应用,再加到库里。

加字段时,先加主库里(手动同步到从库),再更新应用



还有就是,数据库的主主选择,主从选择的设置,以及单个数据库达到负荷的情况时,会进行数据分片,会在下节课中讲解,期待!!!



用户头像

胡江涛

关注

放肆才叫青春 2019.05.11 加入

IT软件工程师,一枚

评论

发布
暂无评论
第五周总结