![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Apache Traffic Server
文章平均质量分 91
拉里山姆
这个作者很懒,什么都没留下…
展开
-
ATS源码多线程框架启动分析笔记
DescriptionATS是多线程异步事件处理模型,traffic_cop和traffic_manager作为管理进程,工作进程为traffic_server,traffic_server负责listen,accept和处理session,为提高性能,traffic_server使用了异步I/O和多线程技术。Traffic Server并不是为每个连接都建立一个线程,而是事先创建数组原创 2014-05-21 15:34:20 · 3025 阅读 · 0 评论 -
通过Key查找Volume的相关过程分析
http://blog.csdn.net/chinainvent/article/details/8073746TS把若干个物理硬盘、目录(通过storeage.config描述),视为一个大的逻辑盘。并把这个逻辑盘,切分为若干个逻辑卷(通过volume.config描述)。当一个请求过来,这个请求的URL等信息,将被计算出一个md5值,而key则是这个md5值的一个函数:key转载 2014-05-01 16:47:25 · 878 阅读 · 0 评论 -
TrafficServer内存分配器优化
http://blog.csdn.net/chinainvent/article/details/8243089转载 2014-05-01 16:48:53 · 995 阅读 · 0 评论 -
TraTraffic Server 进程模型
http://www.cnblogs.com/liushaodong/archive/2013/02/26/2933280.html1.概述 Traffic Server包括三个一起工作的进程来服务Traffic Server的请求,管理/控制/监控系统的健康状况。图1说明了三个进程的关系,三个进程将会在下面描述。 图1:进程之间的关系1转载 2013-11-29 14:09:01 · 1344 阅读 · 0 评论 -
nginx并发模型与traffic_server并发模型简单比较
http://www.cnblogs.com/liushaodong/archive/2013/02/26/2933535.htmlnginx并发模型: nginx 的进程模型采用的是prefork方式,预先分配的worker子进程数量由配置文件指定,默认为1,不超过1024。master主进程创建监听套接口,fork子进程以后,由worker进程监听客户连接,每个wor转载 2013-11-29 14:10:55 · 1816 阅读 · 0 评论 -
apache traffic server官网的几张图片
编写插件时的流程:插件可能出现的处理流程:基于事件驱动的异步处理流程:基于事件驱动的异步处理流程(带插件):简单的http协原创 2012-06-16 08:52:21 · 3938 阅读 · 0 评论 -
Traffic Server 正向代理(透明代理)
http://trafficserver.apache.org/安装:解压源码包后先阅读 README 文件,里面告诉了需要那些开发包的支持。Ubuntu:gcclibssl-dev tcl-devlibexpat-dev libpcre3-dev libcap-devapt-get install转载 2012-03-16 11:40:14 · 3895 阅读 · 3 评论 -
Web Cache替换算法分析(二)
http://blog.chinaunix.net/uid-23242010-id-147989.html 本章主要描述TrafficServer中ram cache设计方案。TrafficServer在内存中维护了一个ram cache,用来保存用户频繁访问的热点文件或数据,以避免磁盘查找慢的问题。TS在刚开源的时候,ram cache的设计只是一个简单的LRU算法,后来,John Plev转载 2013-06-21 15:23:56 · 891 阅读 · 0 评论 -
Web Cache替换算法分析(一)
http://blog.chinaunix.net/uid-23242010-id-147401.html对于一个高性能服务器软件来说,cache层的设计好坏直接影响着系统性能。 web caching与传统操作系统中cache的区别: (1)HTTP协议支持整个文件的传输,因此一个web cache只有缓存了整个文件才能满足用户的请求。 (2)在we转载 2013-06-21 15:22:15 · 1081 阅读 · 0 评论 -
trafficserver records.config参数说明
说明:来源赵永明的ATS-BLOG.该版本是基于3.2.4的records.config参数整理而来,结合了官网的参数解说进行汉化得来。有很多参数在翻译的过程中可能并不是很准确,或是我的理解有偏差,翻译的完全不对,或者是我不懂没有功能的介绍,都希望大家能够指正,共同维护,将这个版本不断完善,希望通过我们的努力能够早日将ats推广开来records.config是Traffic Se转载 2014-04-02 23:07:19 · 3888 阅读 · 0 评论 -
trafficserver的DNS初始化源码分析一
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenpiaoping.blog.51cto.com/5631143/1364486SplitDNS功能:SplitDNS可以配置ats使用多个DNS服务器,这样是处于安全考虑的。配置:(1)开启splitdns,即proxy.config.dns.spl转载 2014-04-02 23:08:29 · 1729 阅读 · 0 评论 -
trafficserver的DNS查询源码注释
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenpiaoping.blog.51cto.com/5631143/1365106HttpSM.ccDNS的查询(包括hostdb的查询)从以下函数开始voidHttpSM::set_next_state(){ ...... HT转载 2014-04-02 23:10:20 · 973 阅读 · 0 评论 -
trafficserver的ICP查询流程源码注释
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenpiaoping.blog.51cto.com/5631143/1369287 上面说过类ICPProcessorExt对外提供的接口有两个:start()和ICPQuery(),start()的功能是初始化并启动ICP模块,这个上面已经分析完了,剩转载 2014-04-02 23:13:25 · 792 阅读 · 0 评论 -
trafficserver的Net模块源码注释
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenpiaoping.blog.51cto.com/5631143/1367610Net的启动流程:main.ccmain()--->UnixNetProcessor::start()Net模块的启动intUnixNetProcess转载 2014-04-02 23:12:22 · 1234 阅读 · 0 评论 -
trafficserver的DNS响应主要流程源码注释
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenpiaoping.blog.51cto.com/5631143/1366298DNS响应流程:在DNS初始化流程的说明时已经说过,DNS启动后会打开到DNS server的链接,然后定时调用DNSHandler::mainEvent()进行DNS响应转载 2014-04-02 23:11:30 · 1268 阅读 · 0 评论 -
ATS插件开发基础
https://blog.zymlinux.net/index.php/archives/540ATS插件开发需要提前了解ATS的插件的一些设计思想,以及系统提供的一些不同方向。我们将会介绍ATS的基础开发知识,以利于后续的插件开发课程讲解。ATS的SDK文档,是了解ATS的核心设计、接口设计的很重要资料,甚至是老的PDF版本文档,都是非常非常有用的资料。以至于我经常建议完全不了解AT转载 2014-04-02 23:26:16 · 1343 阅读 · 0 评论 -
trafficserver的ICP初始化和启动流程源码注释
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenpiaoping.blog.51cto.com/5631143/1368770icp.config配置文件说明文件中的每一行描述一个icp peer的名字和配置信息,格式如下:host : host_IP : peer_type : proxy_po转载 2014-04-02 23:12:49 · 1148 阅读 · 0 评论 -
trafficserver的DNS初始化源码分析三
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenpiaoping.blog.51cto.com/5631143/1364489这个函数的功能是设置DNSHandler的handler为DNSHandler::mainEvent,并定时调用该函数,然后打开到DNSserver的链接main()--->D转载 2014-04-02 23:09:43 · 1017 阅读 · 0 评论 -
trafficserver的DNS初始化源码分析二
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenpiaoping.blog.51cto.com/5631143/1364488DNSserver表的创建就是new一个DNS_table,跟踪到ControlMatcher的构造函数main()--->DNSProcessor::start()---转载 2014-04-02 23:09:13 · 779 阅读 · 0 评论 -
TrafficServer一致性hash实现
http://blog.chinaunix.net/uid-10249062-id-3244967.html TrafficServer的一致性hash实现与基于RBTree的一致性hash实现存在着比较大的差异。下面以Cluster模式的一致性哈希实现为例进行说明: 1 数据结构在trafficser中实现一致性hash的结构为struct ClusterC转载 2012-06-27 12:58:13 · 1364 阅读 · 0 评论 -
TrafficServer源码初体验–2
http://skysbird.bsdchina.org/?p=237刚刚在开篇中介绍到eventProcessor.start方法,这时trafficserver的事件处理子系统已经被启动。接下来的代码分析过程种可以看到,这个事件处理子系统会被其他子系统使用。先把开篇种proxy/Main.cc的总控制流图引过来,便于继续分析。eventProcessor之后,下面的转载 2012-06-27 13:59:34 · 2091 阅读 · 0 评论 -
traffic server cache源码分析二 读写逻辑分析
http://blog.chinaunix.net/uid-23242010-id-2183028.html 第一章指出,ts对大文件与小文件的存储方式略有不同。对于小文件,使用一个Doc保存所有的内容,而对于一个大文件,会使用一个Doc保存head部分,并将body分为多个fragment,每个fragment使用一个Doc来保存。通过将大文件分为多个fragm转载 2012-06-27 13:51:35 · 2726 阅读 · 0 评论 -
ATS有关于线程设置是如何 。?
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3752123&extra=page%3D1%26filter%3Dtypeid%26typeid%3D333%26typeid%3D333proxy.config.exec_thread.autoconfig=1的情况下,ET_NET线程(主要的业务线程)数量=CP转载 2012-06-27 10:25:25 · 1788 阅读 · 0 评论 -
traffic server实现类似squid的store_rewrite外挂程序功能
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3714410序言国内的上网环境中,带宽费用实在不是一笔小钱。企业上网中,尤其碰到很多带宽不够用的情况。然而并不是所有的单位都有能力、有办法解决上网带宽的物理限制。因此以减少上网带宽为目标的web代理服务器在企业内部发挥着很重要的作用,一台普通上网代理服务器就可以为企业节省5转载 2012-06-27 09:49:46 · 1239 阅读 · 0 评论 -
Traffic Server Net子系统分析
Traffic Server设计的思想是将一个大系统划分为若干个小的子系统,每个子系统负责专门的任务或应用。比如,Event子系统负责提供任务调度服务,Net子系统负责提供网络服务。每个子系统抽象为一个Processor,如图1所示。这种高内聚低耦合的设计原则使系统具有更好的重用性,维护性和扩展性。例如,如果hostDBProcessor需要进行DNS解析,可以直接调用dnsProcessor的相转载 2012-06-11 15:57:35 · 1190 阅读 · 0 评论 -
Traffic Server的eventsystem源码分析 多线程框架
http://blog.chinaunix.net/uid-23242010-id-2239465.html 多线程框架需要完成的任务 (1) 作为一个服务器,它需要负责listen一个或多个端口,当有用户请求过来时,需要accept建立连接,完成连接后,需要监听每个建立好连接的socket是否可读或者可写。如果用户请求的内容没有保存在本地cache上,需要转载 2012-06-11 14:41:38 · 2080 阅读 · 0 评论 -
TrafficServer源码初体验
http://skysbird.bsdchina.org/?p=207最近在研究TrafficServer的源码,将一些心得体会分享出来。先上一张主程序(proxy/Main.cc)流程图,用Understand反向工程出来的,比较有助于代码的理解和分析。由于TrafficServer在2011年才刚刚由Yahoo释放出源码,所以关于TrafficServer的源码分析的文档非转载 2012-03-22 17:32:47 · 3922 阅读 · 1 评论 -
在redhat-64编译trafficserver-3.0.2.tar.bz2
tar -jxvf trafficserver-3.0.2.tar.bz2./configure --prefix=/usr/install/trafficserver --with-user=cache --with-group=cache --enable-debug出现很奇怪的报错:/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../.原创 2012-03-16 13:09:07 · 3011 阅读 · 1 评论 -
整理 Traffic Server 反向代理缓存
http://rdc.taobao.com/blog/cs/?p=533作为反向代理缓存,Traffic Server为源服务器服务请求。Traffic Server被配置成对客户端而言是正常的源服务器的方式。理解反向代理缓存通过前向代理缓存,Traffic Server为客户端处理发往远距离源服务器的web请求。反向代理缓存(又称服务器加速或虚拟主机托管)和前原创 2012-03-15 15:16:01 · 2624 阅读 · 0 评论 -
反向代理原理
局域网主机联入互联网的一种方式,使用代理上网可以节约紧缺的IP地址资源,而且可以阻断外部主机对内部主机的访问,使内部网主机免受外部网主机的攻击。但是,如果想让互联网上的主机访问内部网的主机资源(例如:Web站点),又想使内部网主机免受外部网主机攻击,一般的代理服务是不能实现的,需要使用反向代理来实现。 本文将详细介绍反向代理服务的概念以及如何利用反向代理服务器提高WEB服务器的性能和安全转载 2012-03-15 16:18:46 · 2549 阅读 · 1 评论 -
traffic server配置cluster的疑问
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3611607&extra=page%3D2%26filter%3Dtypeid%26typeid%3D333%26typeid%3D333本帖最后由 yayu_myself 于 2011-10-26 14:24 编辑两台内核一样的ubuntu,配置如转载 2012-06-27 10:52:25 · 2488 阅读 · 0 评论 -
traffic server能不能对所有网站开启反向代理
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3580344&extra=page%3D3%26filter%3Dtypeid%26typeid%3D333%26typeid%3D333本帖最后由 yayu_myself 于 2011-08-16 18:51 编辑record.conf里面修改如下:转载 2012-06-27 11:02:46 · 1966 阅读 · 0 评论 -
traffic server cache源码分析四 初始化与元数据同步
http://blog.chinaunix.net/uid-23242010-id-2953692.html 之前我们讨论过,cache的索引在trafficserver启动时,会从磁盘加载到内存中。这里有两个问题。 问题1:内存中的索引被更新后,与磁盘中保存的部分已经不一致,我们称之为脏了,这时需要将索引写回至磁盘中去。转载 2012-06-27 13:53:15 · 2753 阅读 · 0 评论 -
traffic server dns解析相关代码分析
http://blog.chinaunix.net/uid-23242010-id-93354.html TrafficServer提供了DNS解析相关的功能,相关模块为iocore/dns。目前dns模块还有很多问题需要解决[1]。 首先从配置管理上分析dns模块。以下给出ts配置文件records.config中与dns相关的配置选项:转载 2012-06-27 13:48:34 · 1549 阅读 · 0 评论 -
整理的一些关于apache traffic server的FAQ条目
http://people.apache.org/~zym/trafficserver/FAQ.html第一次用TS?如何单机节点搭建reverse proxy模式的服务?修改records.config文件CONFIG proxy.config.cluster.ethernet_interface STRING eth0, 根据机器的配置将eth0修改为实际的网络转载 2012-06-27 13:14:09 · 5101 阅读 · 0 评论 -
traffic server cache源码分析三 evacuate机制的实现
http://blog.chinaunix.net/uid-23242010-id-2915354.html 之前分析过,trafficserver的cache机制本质上是将cache视为一个ring buffer,循环顺序向cache写入内容。同时我们也说过,trafficserver对大文件与小文件的存储方式是不相同的。对于小文件,head与body是放在一个整体转载 2012-06-27 13:52:35 · 1687 阅读 · 0 评论 -
traffic server cache源码分析一 存储机制分析
http://blog.chinaunix.net/uid-23242010-id-2182847.htmltrafficserver的cache层包含两层,它在内存中维护了一个ram cache,缓存热点数据,该层的具体描述见这里,与此同时ts提供了磁盘一级的存储。对比了一下trafficserver的cache存储系统与squid的coss文件系统,不难发现,它们的本质转载 2012-06-27 13:50:13 · 3382 阅读 · 1 评论 -
Trafficserver Cluster模式
http://blog.chinaunix.net/uid-10249062-id-3243299.html1 概述 为了解决大流量、大存储的访问特性,Cache Cluster架构方案通常引入四层负载机制(LVS或硬件设备)解决大流量的问题,引入七层负载机制(Haproxy等)解决大存储的问题。而这样的Cache Cluster架构方案一次request需转载 2012-06-27 12:57:17 · 1254 阅读 · 0 评论 -
Traffic Server & IE6 & Content-Encoding
在为上海的朋友配置正向代理服务器的时候碰到了一个奇怪的问题,无法用IE6通过TS的代理访问www.sohu.com。测出不用TS是没问题的。更细致的研究发现,www.sohu.com对Accept-Encoding不敏感,完全不理会用户端发来的要求,只要协议是HTTP/1.1,一定会发Gzip压缩的数据回来。而TS默认的回源方式是http1.1的,因此不管前端IE是http1.0的请求,都会被TS转载 2012-06-27 10:57:57 · 1191 阅读 · 0 评论 -
Enabling read-while-writer
The following settings are required for the read-while-writer feature to function:CONFIG proxy.config.cache.max_doc_size INT 0CONFIG proxy.config.cache.enable_read_while_writer INT 1CONFIG proxy.c转载 2012-06-27 11:14:59 · 1211 阅读 · 0 评论