流媒体分流方案

上传人:第*** 文档编号:34234206 上传时间:2018-02-22 格式:DOCX 页数:12 大小:173.93KB
返回 下载 相关 举报
流媒体分流方案_第1页
第1页 / 共12页
流媒体分流方案_第2页
第2页 / 共12页
流媒体分流方案_第3页
第3页 / 共12页
流媒体分流方案_第4页
第4页 / 共12页
流媒体分流方案_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《流媒体分流方案》由会员分享,可在线阅读,更多相关《流媒体分流方案(12页珍藏版)》请在金锄头文库上搜索。

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

2、ic Server 的开发团队曾经由 Chuck Neerdaels 领导,他也是 Harvest 项目的早期创始人之一,Harvest 项目后来发展为十分流行的 Squid 项目;Leif Hedstrom 直接管理着现在的 Traffic Server 开发团队。目前 Chuck Neerdaels 和 Leif Hedstrom 都已加盟知名 CDN 服务提供商 Akamai。HTTP 代理服务器是 HTTP 服务器的一种实现,处于客户端(一般为浏览器)与另一个 HTTP 服务器之间(通常指源服务器, Origin Server)。HTTP 代理通常分为正向代理、反向代理和透明代理,我们

3、 主要关注的是反向代理(Reverse Proxy,见下图)反向代理服务器根据明确配置的映射规则来处理用户请求。反向代理服务器通常会设置一个较大的缓存区,服务器处理请求的同时将请求的内容缓存在服务器本地,当下次用户请求同一个对象时,服务器可直接从缓存区里取出对象,而不用去源服务器去取,起到了加速的效果。另外,配置反向代理的映射规则也能实现负载均衡的功能。除了 Traffic Server,常见的开源代理服务器还有 Squid ,Varnish,Nginx ,HAProxy。 Traffic Server 在 Yahoo 内部使用了超过 4 年,主要用于 CDN 服务,CDN 用于分发特定的 H

4、TTP 内容,通常是静态的内容如图片、JavaScript、 CSS。下面是 Traffic Server 在 Yahoo CDN 应用的一些情况: 超过 4 年的使用中,缓存中没有出现已知的数据损坏(data corruption); 作为反向代理,服务器方便部署和管理,并且大部分配置的更改可直接在线上服务器完成,而不用重启服务; 在高并发情况下扩展良好,支持 HTTP/1.1 协议特性,如 SSL、Keep-Alive; 在世界范围内部署了超过 100 台服务器; 在实际 CDN 中,每秒处理超过 350,000 次请求,达到 30 Gbps,最大容量至少十倍于普通使用,以应对高峰时的大量

5、请求; 在实际 CDN 中,每台服务器有 20,000 到 30,000 的 keep-alive 并发连接,其中有 1,000 到 2,000 的连接是一直很活跃的; 实验环境中,单台服务器每秒处理 105,000 次请求,请求的对象是被缓存住的小文件; 实验环境中,请求大文件时,单台服务器达到 3.6 Gbps(4x GigE NIC bonded)。二 组件、机制Traffic Server(TS) 的组成1.Traffic Server 缓存 TS 缓存包含一个高速的对象数据库,数据库根据 URL 和相关头部来索引对象,对于同一对象可以缓存不同版本(如不同的编码、语言)。 当缓存空间满

6、后,TS 会移除过期的数据。 当磁盘出错时,TS 将不再使用该块磁盘,转而使用剩下的磁盘。所有磁盘都出错时,TS 将切换至 proxy-only 模式,即只代理,不缓存。 可分区,即可以给指定的协议和源服务器划分一定数量的磁盘空间 2.RAM 缓存内存缓存区储存比较热门的对象,在流量的高峰期时能加快处理速度和降低磁盘负载。3.主机数据库 储存 DNS 信息,方便主机名到 IP 地址的快速转换 储存每个主机的 HTTP 版本,方便高级协议特性的使用 储存主机的可靠性和可用性信息 4.DNS 解析器TS 原生实现了 DNS 解析器,不依赖较慢的传统解析库。同时也降低了 DNS 的流量。5.Traf

7、fic Server 进程 traffic_server 进程负责接受连接,处理协议请求,然后从缓存或源服务器获取对象并返回 traffic_manager 进程是 TS 的命令和控制设施,负责启动、监控和配置 traffic_server 进程,它也负责代理的端口配置、统计信息的接口、集群管理和虚拟 IP 的故障转移。 如果 traffic_manager 检测到 traffic_server 进程失效,它立即重启 traffic_server 进程并且维护一个连接队列,保存此时到来的请求,完全重启后这个队列里的连接将按顺序被处理。 traffic_cop 进程监视 traffic_serv

8、er 和 traffic_manager 进程,此进程周期性的查询 traffic_server 和 traffic_manager 进程的健康状况,如果查询在一定间隔时间内未返回或者返回信息不正确,traffic_cop 将重启 traffic_manager 和 traffic_server 进程。6.管理工具 Traffic Line 是命令行程序,可以用来快速监视 Traffic Server 的性能和网络流量,也能配置 TS。 Traffic Shell 也是命令行工具,进入该 shell 后有自己一套语法,可代替 Traffic Line 完成监控、配置任务。 通过 Traffic

9、 Line 和 Traffic Shell 对配置作出的修改将会自动写入配置文件中。 Traffic Server 的底层机制Apache Traffic Server 不同于大部分开源代理服务器,它结合了两种技术来处理高并发: 异步事件处理(Asynchronous event processing) 多线程(Multi-threading)Traffic Server 在多 CPU、多核的硬件上扩展良好,能充分利用所有可用的 CPU 和其他资源。HTTP 代理缓存相关机制1. Traffic Server 处理请求的过程1)用户请求一个 web 对象,TS 收到请求2)TS 通过对象的地址

10、,在对象数据库(缓存)中去定位该对象a.如果对象在缓存中,TS 会检查对象是否新鲜(fresh)如果新鲜,TS 从缓存里返回该对象给用户,此时称为缓存命中(cache hit) 如果不新鲜(stale),TS 会连接源服务器去验证对象是否仍然新鲜,即重新验证(revalidation),如果仍然新鲜,TS 立即将缓存中的副本返回给用户b.如果对象不在缓存中(缓存未命中,cache miss),或者缓存的副本不再有效,TS 会去源服务器获取对象,然后同时做下面两件事将对象返回给用户将对象放到本地缓存中2. Traffic Server 判断 HTTP 对象是否新鲜(fresh)的过程 如果有 E

11、xpires 或者 max-age 头部直接定义缓存的过期时间,TS 将对比当前时间和过期时间去判断对象是否新鲜 如果没有上述头部,TS 将检查 Last-Modified 和 Date 头部(其中 Date 是源服务器返回对象的时间,如果没有 Last-Modified 头部,TS 会用对象写入缓存的时间以作代替),然后用以下公式算出新鲜的时间范围(freshness_limit,可理解为保质期):freshness_limit = ( Date - Last-Modified ) x 0.10.1 这个参数可以作调整,并且能限制 freshness_limit 的上下限,默认最小是 1 小

12、时,最大是 1 天 如果没有 Expires 头部或者没有 Last-Modified、Date 头部,TS 将使用默认的 fressness limit 另外,TS 还会检查 cache.config 配置文件中的 revalidate 规则,该规则可以对特定的 HTTP 对象设置特定的验证时间(特定的域名、IP、一定规则的 URL、特定的客户端等等) 3. 缓存过期( stale),Traffic Server 去源服务器重新验证对象可能的情况 仍然 fresh,TS 重置 freshness_limit,并返回对象 对象新副本可用,TS 缓存新对象,并同时返回给用户 源服务器上的对象不再

13、存在,TS 也不再返回该副本给用户 源服务器没有响应,TS 返回过期的对象并发出警告。 更详细的说明请查看 Traffic Server 管理文档中的 HTTP Proxy Caching 部分三 安装、使用Apache Traffic Server 开源后添加了 64 位支持,也移植到了常见的 Linux 发行版、FreeBSD、OpenSolaris 和 Mac OS X,开源之前 Yahoo Traffic Server 一直运行在 32-bit Linux 上。(以 Apache Traffic Server 2.1.1 unstable 为例在 32-bit Linux 环境下进行安

14、装测试)安装1. 下载、解压wget http:/www.apache.org/dist/trafficserver/trafficserver-2.1.1-unstable.tar.bz2wget http:/www.apache.org/dist/trafficserver/trafficserver-2.1.1-unstable.tar.bz2.md5md5sum -c trafficserver-2.1.1-unstable.tar.bz2.md5tar jxvf trafficserver-2.1.1-unstable.tar.bz2cd trafficserver-2.1.1-un

15、stable2. 编译、安装查看 README 说明文档,安装编译依赖的库(centos 可参照 fedora 依赖的软件包,pcre 包替换为 pcre-devel 即可)./configure -help 查看编译的一些选项./configure (默认安装在 /usr/local,如需修改,使用 -prefix=PREFIX;参数中还有用户和用户组选项,这是 TS 进程运行的身份,默认均为 nobody,centos 可以不作修改,其他发行版可能需要修改,如 ./configure -with-group=nogroup)makemake install 以管理员身份执行目录结构默认目录

16、 内容/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),反向代理即在此配置。 records.config 中关键的配置CONFIG proxy.config.exec_thread.autoconfig I

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号