Chinaunix首页 | 论坛 | 博客
  • 博客访问: 259817
  • 博文数量: 19
  • 博客积分: 1608
  • 博客等级: 上尉
  • 技术积分: 335
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-10 10:05
文章分类

全部博文(19)

文章存档

2012年(3)

2011年(6)

2010年(7)

2009年(3)

分类: 服务器与存储

2012-06-14 15:24:53

1 概述

       为了解决大流量、大存储的访问特性,Cache Cluster架构方案通常引入四层负载机制(LVS或硬件设备)解决大流量的问题,引入七层负载机制(Haproxy等)解决大存储的问题。而这样的Cache Cluster架构方案一次request需要经过七层负载机制和Cache Server两次的解析。以选择Haproxy为例,其request解析的CPU开销占到用户态的10%以上(不包括其它七层的匹配处理)。因此,避免request的重复解析,能够减少CPU的开销。

        另外,业界只有TrafficServer能够提供融合七层负载和Cache Server的单独解决方案,而其它的方案只能用两个软件来分别来实现七层负载和Cache Server。而TrafficServer正式实现完整方案的关键技术。

2 原理

        TrafficServerCluster模式原理如下图所示:

      TrafficserveCluster模式下,远端client访问Cache Cluster在服务时存在四种处理策略:

  • 本地CacheServer Hit状态

       clientrequest经过一致性哈希计算出对应的服务Server为本地(即如图中的Cache Server 1)。此时req如果在Cache Server1Hit,则直接回复resp。数据流程为:

1:req->8:resp

  • 本地CacheServer Miss状态

       clientrequest经过一致性哈希计算出对应的服务Server为本地(即如图中的Cache Server 1)。此时req如果在Cache Server1Miss,则回Orig Server。数据流程为:

1:req->5:req->6:resp->8:resp

  • 远端CacheServer Hit状态

       clientrequest经过一致性哈希计算出对应的服务Server为远端(即如图中的Cache Server 2)。此时req如果在Cache Server 2Hit,则回复数据至Cache Server 1,再由Cache Server 1把数据回复给client。数据流程为:

1:req->2:req->3:resp->8:resp

  • 远端Cacheserver Miss状态

       clientrequest经过一致性哈希计算出对应的服务Server为远端(即如图中的Cache Server 2)。此时req如果在Cache Server 2Miss,则回复Miss信息至Cache Server 1,再由Cache Server 1回源,再把回源的resp一边回复至client,一边回复至Cache Server 2,由Cache Server 2存入本地。数据流程为:

1:req->2:req->3:Miss->5:req->6:resp->8:resp(7:resp)

备注:

TrafficServer之间交互的requestresponse都为序列化后的解析结果数据,因此可以减少重复解析。

阅读(6761) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~