ApacheTrafficServer简介 trafficserver 命中率

作者:王柯龙

一 介绍

Apache Traffic Server(ATS或TS)是一个高性能的、模块化的HTTP代理和缓存服务器。Traffic Server最初是 Inktomi 公司的商业产品,该公司在2003 年被 Yahoo 收购,之后 Traffic Server 一直在 Yahoo 内部使用长达 4 年,直到 2009 年 8月 Yahoo 向 Apache 软件基金会(ASF)贡献了源代码,并于 2010 年 4月成为了 ASF的顶级项目(Top-LevelProject)。 Apache TrafficServer 现在是一个开源项目,开发语言为C++。

Traffic Server 的开发团队曾经由Chuck Neerdaels 领导,他也是Harvest 项目的早期创始人之一,Harvest 项目后来发展为十分流行的Squid 项目;LeifHedstrom 直接管理着现在的 Traffic Server 开发团队。目前Chuck Neerdaels 和 Leif Hedstrom都已加盟知名CDN 服务提供商 Akamai。

HTTP 代理服务器是 HTTP 服务器的一种实现,处于客户端(一般为浏览器)与另一个 HTTP 服务器之间(通常指源服务器,Origin Server)。HTTP 代理通常分为正向代理、反向代理和透明代理,我们主要关注的是反向代理(Reverse Proxy,见下图)反向代理服务器根据明确配置的映射规则来处理用户请求。反向代理服务器通常会设置一个较大的缓存区,服务器处理请求的同时将请求的内容缓存在服务器本地,当下次用户请求同一个对象时,服务器可直接从缓存区里取出对象,而不用去源服务器去取,起到了加速的效果。另外,配置反向代理的映射规则也能实现负载均衡的功能。除了Traffic Server,常见的开源代理服务器还有Squid,Varnish,Nginx,HAProxy。

Traffic Server 在 Yahoo 内部使用了超过 4 年,主要用于 CDN 服务,CDN 用于分发特定的 HTTP 内容,通常是静态的内容如图片、JavaScript、CSS。下面是Traffic Server 在 YahooCDN 应用的一些情况:

二 组件、机制

Traffic ServerTS 的组成

1.Traffic Server缓存

2.RAM 缓存
ApacheTrafficServer简介 trafficserver 命中率
内存缓存区储存比较热门的对象,在流量的高峰期时能加快处理速度和降低磁盘负载。

3.主机数据库

4.DNS 解析器
TS 原生实现了 DNS 解析器,不依赖较慢的传统解析库。同时也降低了 DNS 的流量。

5.Traffic Server 进程

6.管理工具

Traffic Server 的底层机制

Apache Traffic Server 不同于大部分开源代理服务器,它结合了两种技术来处理高并发:

Traffic Server 在多 CPU、多核的硬件上扩展良好,能充分利用所有可用的 CPU 和其他资源。

HTTP 代理缓存相关机制

1. Traffic Server 处理请求的过程

1)用户请求一个 web 对象,TS 收到请求

2)TS通过对象的地址,在对象数据库(缓存)中去定位该对象

a.如果对象在缓存中,TS 会检查对象是否新鲜(fresh)

如果新鲜,TS 从缓存里返回该对象给用户,此时称为缓存命中(cache hit)

如果不新鲜(stale),TS会连接源服务器去验证对象是否仍然新鲜,即重新验证(revalidation),如果仍然新鲜,TS 立即将缓存中的副本返回给用户

b.如果对象不在缓存中(缓存未命中,cache miss),或者缓存的副本不再有效,TS 会去源服务器获取对象,然后同时做下面两件事

将对象返回给用户

将对象放到本地缓存中

2. Traffic Server 判断 HTTP 对象是否新鲜(fresh)的过程

3. 缓存过期(stale),Traffic Server 去源服务器重新验证对象可能的情况

更详细的说明请查看 Traffic Server 管理文档中的 HTTP Proxy Caching 部分

三 安装、使用

ApacheTraffic Server 开源后添加了 64 位支持,也移植到了常见的 Linux 发行版、FreeBSD、OpenSolaris和 Mac OS X,开源之前 Yahoo Traffic Server 一直运行在 32-bit Linux 上。

(以 Apache Traffic Server 2.1.1 unstable 为例在 32-bit Linux环境下进行安装测试)

安装

1. 下载、解压

wgethttp://www.apache.org/dist/trafficserver/trafficserver-2.1.1-unstable.tar.bz2

wgethttp://www.apache.org/dist/trafficserver/trafficserver-2.1.1-unstable.tar.bz2.md5

md5sum -c trafficserver-2.1.1-unstable.tar.bz2.md5

tar jxvf trafficserver-2.1.1-unstable.tar.bz2

cd trafficserver-2.1.1-unstable

2. 编译、安装

查看 README说明文档,安装编译依赖的库(centos 可参照 fedora 依赖的软件包,pcre包替换为 pcre-devel 即可)

./configure --help查看编译的一些选项

./configure (默认安装在 /usr/local,如需修改,使用--prefix=PREFIX;参数中还有用户和用户组选项,这是 TS 进程运行的身份,默认均为 nobody,centos可以不作修改,其他发行版可能需要修改,如 ./configure --with-group=nogroup)

make

make install 以管理员身份执行

目录结构

默认目录

内容

/usr/local/var/log/trafficserver

运行时创建的日志文件

/usr/local/var/trafficserver

运行时的一系列文件

/usr/local/etc/trafficserver

配置文件

/usr/local/bin

可执行文件

/usr/local/libexec/trafficserver

插件

初步配置

records.config 是 key-value 格式的配置文件,负责大部分全局的选项设置,即主配置文件。

storage.config 用于指定磁盘存储。

remap.config定义映射规则,用于请求的重写(rewrite),反向代理即在此配置。

map http://cdn.example.com/jshttp://js.example.com# 通过 DNS 轮询可实现负载均衡

reverse_map http://js.example.comhttp://cdn.example.com/js #reverse_map 能在源服务器 有 HTTP 重定向跳转时,修改重定向请求,即重写 Location 头部内容

map http://cdn.example.com/csshttp://css.example.com

reverse_map http://css.example.comhttp://cdn.exampe.com/css

map http://cdn.example.com/imghttp://img.example.com

reverse_map http://img.example.com http://cdn.example.com/img

/data1 67108864# 指定一个或多个目录,注明缓存大小,也可直接指定 raw 分区,详见storage.config 中的注释说明

更详细的配置可参考官方管理指南 http://trafficserver.apache.org/docs/v2/admin/

服务控制

命令行工具、监控

/usr/local/bin/traffic_line 需用管理员身份执行

/usr/local/bin/traffic_shell 需用管理员身份执行,进入后提示符为“%”

/usr/local/bin/traffic_logcat 日志查看工具

四 结论

ApacheTraffic Server 开源后功能在不断被开发,性能得到很大提升,社区也在逐渐发展,但除了 Yahoo之外还很少有其他实践,很多功能(如集群)的文档有待完善。Traffic Server丰富的插件开发是其一大亮点,模块化的特点使其拥有很好的扩展性和灵活性,再加上它的高性能,相信 Apache TrafficServer 未来将在很多场景中替代传统的代理和缓存服务器而成为大家的首选。

  

爱华网本文地址 » http://www.413yy.cn/a/25101015/239771.html

更多阅读

怎样提高投篮命中率 提高投篮命中率的训练

怎样提高投篮命中率——简介篮球是一项消耗体能非常强的运动,场上的不断跑动,攻防转换,无球空切等都是需要不断进行的,面对这样高的体力消耗当我们进攻投篮时怎样才能提高投篮命中率,是平时不断的训练和细节决定的。怎样提高投篮命中率

《混沌之戒Ω》攻略:欧米伽人物简介+剧情解析

混沌之戒欧米伽,以下简称CRO,是混沌之戒Chaos Rings的前传。主人公为一代里的Olgar(奥加),此作的性质是一个前传类型的剧情补完,即便没有一代那样宏大的故事,但是这一作的剧情却依旧感人至深。《混沌之戒Ω》攻略:欧米伽人物简介+剧情解析

虫虫大作战简介加攻略 虫虫大作战修改器

虫虫大作战简介加攻略——简介虫虫大作战是一款即时战略塔防类单机游戏,类似于植物大战僵尸,但画面感更强。玩家要控制的是蚂蚁、蜜蜂、甲虫等其它昆虫,而且,此款游戏不仅有剧情模式,还有双人对战模式,可玩性还是挺高的。虫虫大作战简介

思科模拟器:2 入门之界面简介

思科模拟器:[2]入门之界面简介——简介思科模拟器是网络工程师经常使用的网络实验模拟软件,它可以很快捷的模拟网络中的各种设备(交换机、路由器、台式电脑、笔记本电脑、服务器、网络云),搭建各种网络环境,模拟网络拓扑结构等。下面天

驾照科目三考试要求简介 驾照科目一模拟考试

驾照科目三考试要求简介——简介大家都知道现在考驾照是越来越难了,考过一科就已经很是开心了,虽然大家说的科目三挺简单的,但是还要很多方面需要注意的,下面小编就告诉大家一些自己的经验吧驾照科目三考试要求简介——方法/步骤驾照科

声明:《ApacheTrafficServer简介 trafficserver 命中率》为网友情深痞子分享!如侵犯到您的合法权益请联系我们删除