QB-╳╳-╳╳╳-╳╳╳╳
在缓存子系统中没有部署独立的负载均衡实体时,重定向子系统需将用户请求直接调度至特定的缓存服务器,业务流程如下图所示。要求未命中场景下必须支持非代理方式和代理方式两种处理机制,可根据实际需求开启。
用户HTTP重定向系统CacheWeb资源1、用户发起HTTP请求2、分光至WebCache系统Cache命中流程3、返回HTTP 302重定向消息4、用户向WebCache系统发起HTTP请求5、Cache将本地保存的数据发送给用户Cache未命中流程:非代理方式6、源网站返回用户请求数据7、判断资源达到热点阈值,指派Cache系统去源站下载数据8、向源站请求数据9、源站返回数据10、Cache通知重定向设备资源下载情况,重定向系统做记录Cache未命中流程:代理方式6、向源站请求数据7、源站返回数据,Cache本地缓存8、返回用户请求数据9、Cache通知重定向设备资源下载情况,重定向系统做记录图8-3 HTTP重定向WebCache服务流程
1) 用户发起HTTP请求,该请求的目标URL为WebCache系统缓存的网站; 2) HTTP请求被分光至重定向系统;
17
QB-╳╳-╳╳╳-╳╳╳╳
3) WebCache系统的重定向设备接收到用户请求,若该内容已被WebCache系统缓存,
则向用户发送HTTP 302重定向消息,按特定调度算法将请求分发到某台缓存服务器;若不需要提供服务,则忽略该HTTP请求,不做任何处理;
4) 用户收到HTTP 302重定向消息后,直接向WebCache系统发出HTTP请求消息; 5) 如果该WebCache系统存储有用户请求的内容,则由WebCache系统直接向用户回复
相关请求内容;
未命中流程1-非代理方式:
6) 如果该WebCache系统没有缓存用户请求的内容,则不对该条请求进行引导,用户
直接向源网站从源网站获得数据;
7) 重定向子系统判定当前请求文件已经达到设定的热度阈值,指派特定的缓存服务器
向源网站请求下载数据;
8) Cache服务器直接向源网站请求下载数据;
9) 源网站向Cache服务器返回文件数据,数据被传送至给缓存服务器,缓存服务器在
本地存储一份副本;
10) 缓存服务器设备通知重定向子系统本次资源下载情况,重定向子系统做记录;
未命中流程2-代理方式:
6) 如果缓存服务器没有缓存用户请求的内容、或缓存内容已超期/不可用,则由缓存
服务器代理用户向源Web网站请求内容;
7) 源网站返回用户请求的内容,数据传送至给缓存服务器; 8) 缓存服务器将该内容在本地存储一份副本,并将数据发送给用户;
9) 缓存服务器设备通知重定向子系统本次资源下载情况,重定向子系统做记录;
18
QB-╳╳-╳╳╳-╳╳╳╳
8.3. 策略路由引导模式
用户路由器负载均衡CacheWeb资源1、用户发起HTTP请求2、路由器通过策略路由将需要缓存的流量引导到负载均衡器上。 3、负载均衡把请求分发到Cache服务器Cache命中流程4、Cache把本地保存的数据发送给用户Cache未命中流程5、Cache通过负载均衡设备向源网站请求内容6、向源网站请求内容7、源网站返回所请求内容8、负载均衡把内容转发给Cache9、Cache把数据发送给用户图8-4 策略路由引导机制WebCache服务流程
1) 用户向外网发起HTTP请求。
2) 路由器通过策略路由将需要缓存的流量引导到负载均衡设备上。
3) 负载均衡设备接收到用户请求,并按特定算法将请求分发到某台缓存服务器; 4) 当缓存服务器发现本地命中缓存的时候,直接为用户提供服务。
5) 当缓存系统发现未命中缓存的时候,通过负载均衡服务设备向源网站发送请求。 6) 负载均衡设备将Cache系统的请求发送到外网源网站。 7) 源站返回Cache所需要的内容到负载均衡设备。 8) 负载均衡设备将请求内容分发至缓存服务器。
9) 缓存服务器将数据发送给用户,并根据热点情况判断,将热点内容本地存储一份副
本。
19
QB-╳╳-╳╳╳-╳╳╳╳
9
功能要求
9.1. 重定向子系统
9.1.1. 深度报文解析模块
DPI功能模块能够分析链路中的业务原始流量数据,必须支持基于L3/L4信息、基于L7应用层特征(如应用层协议特征码)对数据流量进行分析和识别。
支持对于满足设定规则匹配条件的IP报文进行过滤转发,将满足匹配条件的原始IP报文从指定接口转发到用户请求调度设备。过滤转发规则可以是指定协议类型、IP地址、端口号、流量方向、应用层特征等组合。
DPI功能模块应支持针对访问频次、带宽、流量、连接数等指标进行统计,支持输出外部资源的排名次序等统计数据,支持通过手动或自动方式上报至其他系统。
9.1.2. 用户请求调度模块
用户请求调度模块支持DNS重定向功能。对于捕获的用户DNS解析报文,判断该DNS请求中所需解析的域名是否由WebCache系统缓存。如果用户请求的域名属于系统中预先配置的白名单范围,则请求调度功能根据WebCache系统的状态、业务策略、资源分布、网络条件、IP地址配置等情况,将WebCache系统的IP地址作为DNS响应内容发给最终用户。如果缓存服务器上未缓存该内容,则应代理用户向源站下载内容后传送给用户。
请求调度模块支持HTTP应用层重定向功能,监控用户请求,对于用户发起的HTTP请求,如果属于本地已缓存资源,则由请求调度模块根据WebCache系统的状态以及参数配置等情况,构造HTTP 302重定向消息发给最终用户。除此之外,也应支持本地未缓存而用户请求被引导的场景,此时应由缓存服务模块作为代理下载源内容后传送给用户。
请求调度模块支持通过多种方式监测缓存子系统的可用性及工作状态,能够根据缓存子系统的可用性及存储的文件内容进行调度。
当发现由WebCache系统自身发出的DNS或HTTP请求报文,要求调度模块应不予以响应。
请求调度模块应具备本地系统的缓存内容管理功能,实时维护系统内部的缓存内容的情况,为请求调度提供基础数据支撑,同时支持与管理子系统进行本地缓存内容视图的共享。
20
QB-╳╳-╳╳╳-╳╳╳╳
请求调度模块可支持在WebCache系统在多点及分级部署环境下的跨域调度及跨节点数据回源。
9.2. 缓存子系统
9.2.1. 负载均衡模块
负载均衡模块的功能是将用户请求和Internet网络流量按照配置的负载分担算法分发到不同缓存服务器进行处理。当用户请求到达缓存子系统时,负载均衡功能根椐用户请求、服务器状态等策略,选择特定的缓存服务器,由该台服务器响应用户的请求、提供缓存服务,策略可以是选择性能最佳的缓存服务、存储该份内容的缓存服务器等。
负载均衡模块应能够充分利用所有的缓存服务器的软硬件和网络资源,将所有流量均衡的分配到缓存服务器,尽量避免“不平衡”现象的发生。支持通过多种方式监控资源池中缓存服务器的健康状态,如果某台服务器不可用,则将该服务器从WebCache服务队列中取出,按照策略将负载分发到其它缓存服务器上。
负载均衡模块应具备多台设备的冗余能力,不同设备之间应当具有心跳监控及切换能力,监控对端负载均衡设备的状态。备用设备在一定周期内没有收到主用设备的心跳信号,支持主动将自己切换为主用设备。
在WebCache系统未部署独立的负载均衡设备时,负载均衡的功能可由请求调度模块兼做,此时要求所有的缓存服务器均分配独立的公网IP地址,直接面向用户终端提供服务。
9.2.2. 缓存服务模块
缓存服务模块提供对各类基于HTTP协议的互联网页面对象和文件的缓存能力,对网内用户提供数据输出功能,将缓存服务器内的数据传送至请求该内容的用户终端。接收到用户发送的访问请求时,缓存服务模块需分析该请求是否在本地命中,对于命中请求直接响应;对未命中的请求,则以代理方式将请求转发到源服务器,下载源服务器的响应内容,在本地存储一个副本内容,并同时返回给用户终端。
? 缓存服务模块需支持对网页的解析,并对网页中的html、xml、js、css、zip、mp3、
图像等多种静态互联网HTTP对象进行缓存。支持对不同静态对象的缓存策略配置,管理员可以通过修改配置达到不同类型文件是否缓存的目的。
21