分布式缓存与消息队列

用户头像
紫极
关注
发布于: 2020 年 07 月 09 日
分布式缓存与消息队列

梳理下了解到的分布式缓存和消息队列的结构

1. 分布式缓存架

什么是缓存

存储在计算机上的一个原始数据的复制集

无处不在的缓存

就跟我对漂亮妹子的爱一样,缓存起来她们才能更好的知道我的爱。

缓存数据存储

本质是个Hash表

缓存的关键指标

缓存命中率

影响缓存命中率的指标

缓存键集合大小

键数越少,缓存效率越高

缓存可使用内存空间

缓存对象越多,缓存命中越高

缓存对象生存时间

缓存时间越长,利用率越高

缓存类型

通读缓存

通读缓存给客户端返回缓存资源,并在未命中时获取实际数据

种类

代理缓存

反向代理缓存

多层反向代理缓存

内容分发网络CDN

CDN同时配置静态文件和动态内容

旁路缓存

旁路缓存通常是一个独立的键值对存储

对象缓存就是一种旁路缓存

程序获取对象缓存,存在则返回,不存在或过期,获取真实数据并缓存起来

种类

浏览器对象缓存

本地对象缓存

对象直接缓存在应用程序内存中

对象存储在共享内存中,同机器不同进程都可以访问

缓存和应用在同一台服务器

远程分布式对象缓存

分布式对象缓存一致性hash算法



缓存性能提升



缓存为什么能显著提示性能

缓存数据通常来自内存,比磁盘访问数据更快

缓存数据一般是最终数据,不需要计算

缓存降低数据库、磁盘、网络的负载压力



合理使用缓存

频繁修改的数据,增加系统负担

没有热点的访问,导致内存资源浪费

数据不一致与脏读,缓存加载导致的数据一定时间内的不一致

缓存雪崩,缓存服务崩溃导致整个系统宕机

缓存预热,提前将一些元数据或基本数据直接全部缓存

缓存穿透,缓存一些不存在的数据,确保大部分的请求都能利用到缓存的高性能



Redis vs Memcached

redis 支持复杂的数据结构

redis 支持多路复用,异步I/O高性能

redis 支持主从复制高可用

redis 原生集群,share nothing 集群模式



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

同步调用 vs 异步调用

同步调用

多个耗时操作同步调用

异步掉用

多次异步调用不阻塞应用线程

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

组成

消息生产者

消息队列

消息消费者

点对点模型

发布订阅模型

消息队列的好处

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

更好的伸缩性

削峰填谷

失败隔离和自我修复

解耦

主要MQ产品

RabbitMQ

ActiveMQ

RocketMQ

Kafka

用户头像

紫极

关注

还未添加个人签名 2018.08.28 加入

还未添加个人简介

评论

发布
暂无评论
分布式缓存与消息队列