如何为一个高负荷站点配置tomcat连接器(connector)

引言

最近正好要用到这些内容,因此就找了一篇比较有分量的文章,思来想去,还是尝试写一下译文吧。其实LZ的英语是非常烂的(四级没过的LZ眼泪掉下来),因此这篇文章翻译的水平LZ自己也不敢恭维。各位猿友大致参考一下即可,其中【】符号是LZ的标注,()内的是原文。如果各位有哪里实在看不明白的话,可能是LZ翻译的问题,各位猿友可以去看原文的内容,地址:http://people.apache.org/~mturk/docs/article/ftwai.html。

摘要

倘若你想实现最大的性能和稳定性的话,那么在web服务器后运行tomcat集群是必经之路,这篇文章就是用来描述完成这件事的最佳实践。

tomcat之前

一些人可能会问“为什么要在tomcat前面放置一个web server?”由于最近的JVM技术以及tomcat核心本身的原因,单个tomcat的性能已经非常接近于本地的web服务器,甚至当发送静态文本时,tomcat也只比当前的Apache2web服务器慢10%。因此答案就是:扩展性。

tomcat通过给每个客户端连接分配独立的线程,可以服务许多用户的并发访问。尽管这样tomcat可以做的很好,但是当并发连接数上升的时候,将会出现一些问题。系统为了管理这些线程所花费的时间会降低整体的性能,JVM也将花费更多的时间管理和切换这些线程,然后才能真正的对客户的请求做一些具体的工作。

此外,当应用直接运行在tomcat上的时候,连通性(connectivity)也有不少严重的问题。一个典型的应用可能会处理用户数据、访问数据库或者做一些计算再将结果返回给客户端。所有的这些都是一些耗时的工作,但是为了让用户感觉这是一个可以正常运行的应用程序,大多数时候必须在半秒内(500ms)就完成。如果应用的响应时间为10ms,那么在你的客户抱怨之前,你的应用最多只能同时服务50个并发用户【这句话有点别扭,0.0,但大致意思是理解的】。那么为了支持更多的用户你该怎么做呢?最简单的办法就是买一个更快的硬件,增加更多的CPU或者更多的箱子(boxes)【boxes?箱子?】。两个双路箱子一般比一个四路的便宜,因此添加更多的箱子一般比买一个服务器更加省钱【貌似这个箱子可以替代服务器,到底是什么东西,有英语好的给翻译一下】。

降低tomcat负载的第一件事就是使用web server处理静态文本,就像下图一样。

上图给出了最简单的可行的配置方案。web server用来传送静态文本,而tomcat只处理具体的工作,也就是应用服务。大多数情况下,这就可以满足你了。如果用一个四路的箱子【又是箱子,0.0】,并且应用的响应时间为10ms的话,那么你将能同时服务200个用户,也就是说,一天可以支持350万的访问量【不知道350万这个数字怎么算出来的,用200*60*60*24不是350万,0.0】,这已经是一个比较可观的数字了。

在以上这种程度负载的情况下,你或许不太需要将web server放在tomcat之前。但是还有第二个原因让你这么做,那就是这样创建了一个控制区(demilitarized zone)。将web server放在一个主机上等于在公司的私有网络与互联网或者是其它的外部公共网络之间插入了一个隔离区(neutral zone),这可以让tomcat上的应用安全的访问其它的私有资源,也可以访问公司的私有数据。

除了拥有控制区和可以安全的访问私有网络,还有一些其它的原因,比如可以满足自定义授权的需要。

如果有更多的负载需要承载的话,那么你将不得不添加更多的tomcat应用服务器,这可能是因为客户端的负载已经无法被一个简单的箱子【靠,到现在还没猜出来箱子是什么】处理,也可能是因为当某一个节点宕机时,你需要一种故障恢复的机制。

部署一个包含了多个tomcat应用服务器的架构,需要在web server和tomcat之间加入一个负载均衡器。在apache1.3、apache2.0和IIS中,你可以使用Jakarta Tomcat Connector,因为它提供负载均衡和黏性session机制。在将来的apache2.1/2.2中,可以使用advanced mod_proxy_balancer,它是一个新设计的模块并整合在apache httpd的核心当中。

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/Java/

时间: 2024-08-03 20:49:39

如何为一个高负荷站点配置tomcat连接器(connector)的相关文章

案例分享:一个高权重站点如何走向落寞

一个站长有勇气放弃日IP过万的现状而进行站点改版,虽然知道改版会给网站带来一定的影响,但敢这么做,我想至少也会有对付的办法,然而事实是网站一步一步的走向了衰弱,笔者也是这个站点改版的参与人员.下面笔者就分享一下站点是如何一步一步走向衰败的:   先来看看改版的几个细节 1:META标签的完善.原先的站点meta标签十分的糟糕,关键词与描述都是空着,虽然百度对于这两个标签给予的权值没有以前那么大了,但从百度统计里面可以看出,他们依然有着作用,所以改善META标签是个正确的选择. 2:URL结构的优

Tomcat 多站点配置详解及实现方法_Tomcat

Tomcat 多站点配置 今天心血来潮试了一下Tomcat的多站点配置,都是通过修改server.xml完成,其他方式不做介绍 第一种: 这种是最常见的,在网上一搜就可以搜到的,在这里还是拿出来说一下,方便做个比较,直接贴代码 <Host name="localhost" appBase="www" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn

Win2000 Server IIS+Tomcat5多站点配置

iis|server|站点 配置要求:IIS(win2000 server 自带).Java 2 SDK 1.4.2 (或更高版本).Tomcat Web Server 连接器.Tomcat 5.0.24 (或更高版本) 准备 一.Java 2 SDK 1.4.2 (或更高版本) 1. www.java.sun.com/downloads/ 网站中下载,选择 2. Java 2 Platform, Standard Edition (J2SE) 3. 在下拉列表框中选择All platforms

如何配置Tomcat 5和IIS 5协同工作

iis 目录序 摘要 准备工作 下载 Java 2 SDK 1.4.2 (或更高版本) Tomcat 5.0.24 (或更高版本) Tomcat Web Server 连接器 安装 Java 2 SDK Tomcat 5 Tomcat JK2 IIS 连接器 设置 Tomcat Tomcat IIS 连接器 Windows IIS 设置ISAPI筛选器 创建ISAPI筛选器使用的虚拟目录 重新启动IIS服务 测试 Tomcat IIS 参考文献  序最近遇到一个项目,无法避免的需要将IIS和To

win2000server IIS和tomcat5多站点配置

iis|server|站点   配置要求:IIS(win2000 server 自带).Java 2 SDK 1.4.2 (或更高版本).Tomcat Web Server 连接器.Tomcat 5.0.24 (或更高版本) 准备 一.Java 2 SDK 1.4.2 (或更高版本)1. www.java.sun.com/downloads/ 网站中下载,选择2. Java 2 Platform, Standard Edition (J2SE)3.  在下拉列表框中选择All platforms

win2000server IIS和tomcat5多站点配置_JSP编程

配置要求:IIS(win2000 server 自带).Java 2 SDK 1.4.2 (或更高版本).Tomcat Web Server 连接器.Tomcat 5.0.24 (或更高版本) 准备 一.Java 2 SDK 1.4.2 (或更高版本)1. www.java.sun.com/downloads/ 网站中下载,选择2. Java 2 Platform, Standard Edition (J2SE)3.  在下拉列表框中选择All platforms4.  J2SE v 1.4.2

初学者如何开发出一个高质量的J2EE系统

j2ee|初学   J2EE学习者越来越多,J2EE本身技术不断在发展,涌现出各种概念,本文章试图从一种容易理解的角度对这些概念向初学者进行解释,以便掌握学习J2EE学习方向. 首先我们需要知道Java和J2EE是两个不同概念,Java不只是指一种语言,已经代表与微软不同的另外一个巨大阵营,所以Java有时是指一种软件系统的流派,当然目前主要是.NET和Java两大主流体系. J2EE可以说指Java在数据库信息系统上实现,数据库信息系统从早期的dBase.到Delphi/VB等C/S结构,发展

关于myeclipse配置tomcat的问题

问题描述 在server视图里,有3个server,一个是myeclipseDerby,一个是myeclpisetomcat,还有一个tomcat6.x.请问这三个server有什么区别?为什么我直接在JSP上直接run,没有runonserver? 解决方案 解决方案二:配置tomcat6.x解决方案三:你的工程首先要发布啊,发布的时候你需要选择你所发布的服务器解决方案四:配置tomcat6.x解决方案五:引用1楼xuhuanchao的回复: 配置tomcat6.x 顶一个解决方案六:运行JS

一个可持续发展的站点需要具备的几点

摘要: 也许很多站长朋友做关键词很厉害,通过各种手段短时间内流量飙升也做的很好,但3个月热血过后网站流量稳定不下来甚至下滑,留不住回头用户的情况很多,这一般是站点的用户体验 也许很多站长朋友做关键词很厉害,通过各种手段短时间内流量飙升也做的很好,但3个月热血过后网站流量稳定不下来甚至下滑,留不住回头用户的情况很多,这一般是站点的用户体验不到位,内容粘黏度不够所致.个人认为一个可持续发展的站点需要具备以下几点. 一.网站的访问速度及稳定性 网站的速度很重要可以说是网站的窗口,作为用户来说搜索到一个