7.3 缓存的拓扑结构

  • 私有缓存(private cache):专用缓存,是个人的缓存,包含了单个用户最常用的页面。
  • 公有缓存(public cache):共享的缓存,包含了某个用户团体的常用页面。
    这里写图片描述

1. 私有缓存

  • 私有缓存不需要很大的动力或存储空间,这样就可以将其做得很小,很便宜。
  • Web 浏览器中有内建的私有缓存——大多数浏览器都会将常用文档缓存在你个人电脑的磁盘和内存中,并且允许用户去配置缓存的大小和各种设置或查看缓存中的内容。

2. 公有代理缓存

  • 公有缓存是特殊的共享代理服务器,被称为缓存代理服务器(caching proxy server),或者更常见地被称为代理缓存(proxy cache)。
  • 代理缓存会从本地缓存中提供文档,或者代表用户与服务器进行联系。公有缓存会接受来自多个用户的访问,所以通过它可以更好地减少冗余流量。
  • 公有缓存要缓存用户群体中各种不同的兴趣点,所以要足够大才能承载常用的文档集,而不会被单个用户所感兴趣的文档占满。
    这里写图片描述
  • 代理缓存遵循代理的规则。可以通过指定手工代理,或者通过代理自动配置文件,将你的浏览器配置为使用代理缓存。还可以通过使用拦截代理在不配置浏览器的情况下,强制 HTTP 请求经过缓存传输。

3. 代理缓存的层次结构

  • 在实际中,实现层次化(hierarchy)的缓存是很有意义的,在这种结构中,在较小缓存中未命中的请求会被导向较大的父缓存(parent cache),由它来为剩下的那些“提炼过的”流量提供服务。
    这里写图片描述
  • 基本思想:是在靠近客户端的地方使用小型廉价缓存,而更高层次中,则逐步采用更大、功能更强的缓存来装载多用户共享的文档。
  • 在缓存层次结构很深的情况下,请求可能要穿过很长一溜缓存,但每个拦截代理都会添加一些性能损耗,当代理链路变得很长的时候,这种性能损耗会变得非常明显。在实际中,网络结构会尝试着将其深度限制在连续的两到三个代理以内。但是,新一代的高性能代理服务器会使代理链的长度变得不那么重要。

4. 网状缓存、内容路由以及对等缓存

  • 网状缓存(cache mesh):网状缓存中的代理缓存之间会以更加复杂的方式进行对话,做出动态的缓存通信决策,决定与哪个父缓存进行对话,或者决定彻底绕开缓存,直接连接原始服务器。
  • 内容路由器(content router):决定选择何种路由对内容进行访问、管理和传送的代理缓存。
  • 网状缓存中为内容路由设计的缓存(除了其他任务之外)要完成下列所有功能:
    • 根据 URL 在父缓存或原始服务器之间进行动态选择。
    • 根据 URL 动态地选择一个特定的父缓存。
    • 前往父缓存之前,在本地缓存中搜索已缓存的副本。
    • 允许其他缓存对其缓存的部分内容进行访问,但不允许因特网流量通过它们的缓存。
  • 缓存之间这些更为复杂的关系允许不同的组织互为对等(peer)实体,将它们的缓存连接起来以实现共赢。
  • 提供可选的对等支持的缓存被称为兄弟缓存(sibling cache)。
  • HTTP 并不支持兄弟缓存,所以人们通过一些协议对 HTTP 进行了扩展,比如因特网缓存协议(Internet Cache Protocol,ICP)和超文本缓存协议(HyperText Caching Protocol,HTCP)。
    这里写图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值