写点什么

架构师训练营 - 第五周 - 作业二

用户头像
行者
关注
发布于: 2020 年 10 月 24 日

Buffer vs Cache

参考自知乎 https://www.zhihu.com/question/26190832

Buffer(缓冲区)是系统两端处理速度平衡(从长时间尺度上看)时使用的。它的引入是为了减小短期内突发 I/O 的影响,起到流量整形的作用。比如生产者——消费者问题,他们产生和消耗资源的速度大体接近,加一个 buffer 可以抵消掉资源刚产生/消耗时的突然变化。


Cache(缓存)则是系统两端处理速度不匹配时的一种折衷策略。因为 CPU 和 memory 之间的速度差异越来越大,所以人们充分利用数据的局部性(locality)特征,通过使用存储系统分级(memory hierarchy)的策略来减小这种差异带来的影响。


由此可知,Buffer 类似消息队列,来避免突发流量导致消费方被压垮;Cache 类似缓存服务,应用读取缓存而非数据库来提升速度。

一致性 hash 算法 vs 虚拟节点一致性 hash 算法

一致性 hash 算法使用 hash 环,节点 hash 出一个 1~2^32-1 之间的数字,根据 key 的 hash 值计算出放在哪个节点上。

如果节点数不足,会导致数据分布不均匀的问题;通过给每个节点虚拟出 n 个虚拟节点的方法,可以有效让 key 分布更加均匀。

用户头像

行者

关注

还未添加个人签名 2018.03.09 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 - 第五周 - 作业二