架构知识体系

基础 技术 架构 title 4
数据结构、操作系统原理 缓存、异步 高可用
算法能力 分布式存储 高性能
设计模式 微服务 安全性

大型互联网系统的特点:高并发大流量,高可用,海量数据,需求快速变更,发布频繁,安全环境恶劣,用户分布广泛,网络情况复杂

大型互联网系统的挑战 –> 提升系统处理能力的两种手段 –> 单机系统到分布式系统–> 使用各种缓存 –> 分布式存储 –> 微服务与异步架构

分布式缓存(一)

缓存特点:技术简单,性能提升显著,应用场景多

缓存为什么能显著提升性能:
缓存数据通常来自内存,相比磁盘上的数据有更快的访问速度
缓存存储数据的最终结果形态,不需要中间计算,减少CPU资源的消耗
缓存降低数据库、磁盘、网络的负载压力,使这些I/O设备获得更好的响应特性

缓存的关键指标:命中率
缓存是否有效依赖于能多少次重用同一个缓存响应业务请求,这个度量指标被称作缓存命中率
若查询一个缓存,十次查询九次能够得到正确结果,那么它的命中率是90%
影响缓存命中率的3个重要因素:缓存键集合大小、内存空间和缓存寿命

影响缓存命中率的关键特性:缓存键集合大小、缓存对象的生存时间、缓存可使用的内存空间

使缓存失效的两种方式:超时失效、实时清除(对象缓存的时间越长,被重用的可能性就越高)

分布式缓存(二)

通读缓存(read-through)
代理缓存,反向代理缓存,CDN缓存都是通读缓存
若通读缓存给客户端返回缓存资源,或在请求未命中缓存时获取实际数据
客户端连接的是通读缓存而不是生成响应的原始服务器

旁路缓存通常是一个独立的键值对(key-value)存储,对象缓存就是一种旁路缓存

操作类型 粗略时间
访问本地内存 100ns
SSD磁盘搜索 100,000ns
网络数据包在同一数据中心来回一次的时间 500,000ns
磁盘搜索(非-SSD) 10,000,000ns
按顺序从网络读取1MB数据 10,000,000ns
按顺序从磁盘(非-SSD)读取1MB数据 30,000,000ns
跨大西洋网络数据包一次来回延时 150000,000ns
每秒等于多少 1,000,000,000ns
  • 合理使用对象缓存:
  1. 频繁修改的数据
  2. 没有热点的访问
  3. 数据不一致与脏读
  4. 缓存雪崩