架构知识体系

基础技术架构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. 缓存雪崩