Web Development : Cache、MQ

名词

性能指标

系统指标

[1] 吞吐量:     单位时间成功传送数据的量

[2] 并发量:     单位时间访问服务器的连接数

[3] 资源利用率:

[4] 用户响应时间: 呈现时间+系统响应时间[网络传输时间+应用延迟时间]

  # 响应时间: Server接受请求,做出响应   平均值or最大值

  # 呈现时间: Client 接受数据,呈现页面

服务器

QPS:Query Per Scond 每秒I查询率  QPS= C/ART

             

RT    响应时间   Response Time

T      吞吐量       Throughput          

C      并发量       Concurrency  

TPS 每秒处理事务数目 Tracnsactions Per Second

QPS 每秒处理查询数目 Queries Per Second

RPS 每秒处理请求数目 Requests Per Second

IP     网址访问量     Internet Protocol

PV   页面浏览量      Page View  

UV   独立访客Cookies   Unique Visitor

RU 注册用户\OU 在线用户\CU 并发用户
      

Cache

一、概念

定义:  原始数据的复制集

1原理:[1] 写入\读取速度更快的设备

          [2] 缓存到离应用最近的位置

          [3] 缓存到离用户最近的位置

2分类 [1] CDNCache

          [2] 反向代理Cache

          [3] 分布式Cache

          [4] 本地应用Cache

3媒介 [1] 中间件:Ngnix、Redis

          [2] 缓存内容:文件、数据、对象

          [3] 缓存介质:CPU、内存(本地,分布式)、磁盘(本地、分布式)

4. 设计

缓存内容: [1] 热点数据    [2] 静态资源

缓存位置: CDN、反向代理、本地(内存、硬盘)、分布式缓存服务器

解决策略: [1] 过期策略-固定时间、相对时间、

                [2] 同步机制-实时写入(推)、异步刷新(推、拉)

静态资源:页面、脚本、图片、视频、文件—  [ CDN、反向代理 ]  

动态资源:-应用服务器

二.

一.分类

ⅠCDNCache:        最近服务器有缓存,降低网络拥塞、提高访问响应速度、命中率

##原理: 部署-用户访问集中地区,全局负载技术,指向最近正常工作的缓存服务器。

Ⅱ反向代理Cache: 代理服务器有缓存,负载均衡、数据缓存、安全控制

##原理:  部署-机房-代理Server, 返回静态资源,转发动态资源的请求

Ⅲ分布式Cache: 访问热点数据、减轻数据库压力

Ⅳ本地Cache     :   MyBatis\Hibernate

二. 职责划分

## CDN :         存储所有的静态资源

## 反向代理:   动静分离,缓存请求的静态资源

## 分布式缓存: 数据库中的热点数据

## 本地缓存:    字典等常用数据

三. 请求过程  CDN—Nginx—AppServer(LocalCache)—Redis—DB

第一步 Client发起请求,如果CDN有缓存则直接返回

第二步 如果CDN无缓存,则访问反向代理服务器,有则返回

第三步 如果Nginx无缓存,则访问应用服务器,

         #  AppServer访问本地缓存:有则返回代理服务器,并缓存静态数据 [ 动态数据转发 ]

第四步 如果LocalCache无数据,则读取分布式缓存,返回应用服务器,缓存到本地LocalCache

第五步 如果Redis无数据,则读取数据库,并缓存在Redis

四. 常见问题

0.分布式算法  : 余数算法、散列算法

1. 数据一致性

  [1] Write: 先写持久化介质,再写缓存

  [2] Read: 读缓存失败,先读DB,再写回缓存

  [3] Fulsh: 时效性-数据不一致时间,刷新时间

## [1] 先写Cache再写DB    并发读-脏读    

## [2] 先写DB再写Cache    并发读-读不到

## [3] 缓存异步刷新             不同步问题

## 其他方法: 超时、刷新

2. 缓存高可用:  分布式[-数据海量,一致性Hash算法]、复制[-节点高可用,异步]

3. 缓存请求

缓存穿透: 请求Key不存  —— 缓存空数据,key有数据后,清除空数据缓存

缓存雪崩: 大量Key失效  —— 规划失效时间、评估负载压力DB、多级缓存、过载保护、应用层限流

缓存穿刺:

4.

Redis

Mecache

MongoDB

数据安全:文件存放路径、加密、模糊。配置文件

密码:MD5加密,多套对称加密算法。密码表示字段L1:模糊字段,节省磁盘及后续传输消耗

猜你喜欢

转载自blog.csdn.net/ddhmbbklyk2018/article/details/82792237