Week5- 总结

发布于: 13 小时前

分布式缓存的架构

1.什么是缓存

缓存:存储在计算机上的一个原始数据复制集,以便于访问 - 维基百科

用途:用于加快读取速度

2.缓存cache和缓冲buffer的区别

1)缓存cache:系统两端处理速度不匹配时的一种折衷策略

2)缓冲:缓和压力,系统两端处理速度平衡

3.缓存的用途:

CPU缓存

操作系统缓存

数据库缓存

JVM缓存

CDN缓存

代理与反向代理缓存

应用程序缓存

分布式对象缓存

4.缓存数据存储(HASH表)

5.缓存的关键指标

缓存命中率

6.影响缓存明州的主要指标

1)缓存键集合大小:键数量越少,缓存效率越高

2)缓存可使用内存空间:理论上,内存空间大,缓存的对象多,命中率就高

3)缓存对象生存时间:对象缓存的时间越长,缓存对象被重用的可能性就越高

7示例

代理缓存:像客户端缓存

反向代理缓存:像服务端缓存

多层反向代理缓存:同理反向代理缓存,只不过是再不同的层上都加一层缓存

内容分发网络(CDN):CDN托管反向代理服务

CDN同事配置静态文件和动态内容:动态部分访问前端服务器,静态部分访问云服务

8通读缓存:未命中后,通读缓存给客户端返回资源,在请求未命中时通读缓存去获取实际数据

旁路缓存:应用查询的缓存未命中时,去数据源获取实际数据,再将实际数据保存在缓存中

9浏览器缓存:webstorage

10本地对象缓存

1)对象缓存在应用程序内存中

2)对象存储在共享内存,同一台机器的多个进程可以访问他们

3)缓存服务器作为独立应用和应用程序部署在同一服务器上。

11本地对象缓存构建分布式集群

12远程分布式对象缓存

13memcached分布式对象缓存

Memcached本身并不支持分布式,因此只能在客户端通过像一致性哈希这样的分布式算法来实现Memcached的分布式存储

虚拟节点的一致性哈希算法

让节点分布更均匀

13各种介质的访问延时

14技术栈各个层次的缓存

14 缓存为什么能显著提升性能

1)缓存通常来自内存比磁盘上访问数据块

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

3)缓存降低数据库,磁盘,网络的负载压力,是这些io设备获得更好的性能

15缓存的优势

1)技术简单

2)性能提升显著

3)应用场景多

16合理使用缓存

不合适的数据访问特性不适合用缓存,比如说命中率因为访问特性低4,多了个缓存相当于多了操作加慢了系统处理效率

1)频繁修改数据: 读写比例在2:1以上好

2)没有热点的访问:内存宝贵有限,需要遵循28定律

3)数据不一致和脏读:数据不一致导致业务偏差

4)缓存雪崩:缓存丢失或不可用,导致压力冲垮应用

5)缓存预热:预加载

6)缓存穿透:恶意攻击,不存在的数据

17redis vs memcached

redis 支持复杂的数据结构

redis支持多路复用异步i/o高性能

redis支持主从复制高可用

redis原生集群与sharenothing集群模式

18redis集群:16384个桶,redis节点彼此互联

消息队列与异步架构

1.同步调用与异步调用:异步效率高,不阻塞应用线程,回调调用

2.消息队列构建异步调用架构

1)消息生产者

2)消息队列

3)消息消费者

3.发布订阅模型

4.消息队列的好处

1)实现异步处理,提升处理性能

2)更好的伸缩性

3)削峰填谷

4)失败隔离和自我修复

5)解耦

5事件驱动架构EDA:也是一种解耦

6主要的MQ:rabbitmq,activemq,rocketmq,kafka

负载均衡架构

1.http重定向负载均衡:根据负载均衡服务器返回的ip,直接访问

2.反向代理负载均衡

3.IP负载均衡:第二层 改变tcp源地址目标地址

4.链路层负载均衡:改mac地址 ,虚拟ip对应

5.负载均衡算法

1)轮询

2)加权轮循

3)随机

4)最少连接

5)源地址散列

6.应用服务器集群的session管理

1)session复制:互相复制,一致性不好管理,淘汰

2)session绑定:机器挂了,可用性降低

3)利用cookie记录session

4)session服务器

mysql复制

1.主从复制: 只有一个主处理写请求

2.主多从复制:多个从,不同的地方使用数据

分摊负载,专机专用,便于冷备,高可用

3.主主复制:只有一个主处理写请求

用户头像

龙7

关注

还未添加个人签名 2019.02.12 加入

还未添加个人简介

评论

发布
暂无评论
Week5-总结