Architecture
架构知识体系
基础 | 技术 | 架构 | 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 |
- 合理使用对象缓存:
- 频繁修改的数据
- 没有热点的访问
- 数据不一致与脏读
- 缓存雪崩