Tomcat集群的三种负载均衡方式优缺点对照。

1.使用DNS轮询.2.使用Apache R-proxy方式。3.使用Apache mod_jk方式. DNS轮询的缺点是,当集群中某台服务器停止之后,用户由于dns缓存的缘故,便无法访问服务,必须等到dns解析更新,或者这台服务器重新启动。还有就是必须把集群中的所有服务端口暴露给外界,没有用apache做前置代理的方式安全,并且占用大量公网IP地址,而且tomcat还要负责处理静态网页资源,影响效率。优点是集群配置最简单,dns设置也非常简单。 R-proxy的缺点是,当其中一台tomcat停止运行的时候,apache仍然会转发请求过去,导致502网关错误。但是只要服务器再启动就不存在这个问题。 mod_jk方式的优点是,Apache 会自动检测到停止掉的tomcat,然后不再发请求过去。缺点就是,当停止掉的tomcat服务器再次启动的时候,Apache检测不到,仍然不会转发请求过去。 R-proxy和mod_jk的共同优点是.可以只将Apache置于公网,节省公网IP地址资源。可以通过设置来实现Apache专门负责处理静态网页,让Tomcat专门负责处理jsp和servlet等动态请求。共同缺点是:如果前置Apache代理服务器停止运行,所有集群服务将无法对外提供。R-proxy和mod_jk对静态页面请求的处理,都可以通设置来选取一个尽可能优化的效果。这三种方式对实现最佳负载均衡都有一定不足,mod_jk相对好些,可以通过设置lbfactor参数来分配请求任务。 所有这些在实际使用中都应该根据具体情况来选择。简略配置如下:前期准备:1。下载Apache和Tomcat:Apache2.0.53:http://www.eu.apache.org/dist/httpd/binaries/win32/apache_2.0.53-win32-x86-no_ssl.msi Tomcat5.5.9:http://www.eu.apache.org/dist/jakarta/tomcat-5/v5.5.9/bin/jakarta-tomcat-5.5.9.ziphttp://www.eu.apache.org/dist/jakarta/tomcat-5/v5.5.9/bin/jakarta-tomcat-5.5.9-fulldocs.tar.gzhttp://www.eu.apache.org/dist/jakarta/tomcat-5/v5.5.9/bin/jakarta-tomcat-5.5.9-compat.ziphttp://www.eu.apache.org/dist/jakarta/tomcat-5/v5.5.9/bin/jakarta-tomcat-5.5.9-admin.zip mod_jk.sohttp://www.eu.apache.org/dist/jakarta/tomcat-connectors/jk/binaries/win32/jk-1.2.8/mod_jk-1.2.8-apache-2.0.52.so(可选,因为Apache2.0.53已经自带).  2.配置Tomcat集群。同时发布有clusterapp这个web应用,,修改test.jsp,使得打开:http://192.168.9.235:12080/clusterapp/test.jsp和http://192.168.9.226:12080/clusterapp/test.jsp看到的是不同的页面效果。 3.安装Apache2.0.53。 此时Tomcat集群的服务器为:192.168.9.226:12080和192.168.9.235:12080 编辑c:/windows/system32/drivers/etc/host文件,最后一行加上127.0.0.1   lizongbo.com先来R-proxy方式。接下来是mod_jk方式。重新启动apache,同样打开http://lizongbo.com/clusterapp/test.jsp不停的刷新这个页面,也将会看到页面显示出不同的内容。参考资料:Tomcat cluster:http://www.onjava.com/onjava/2004/04/14/examples/tomcatclustering.ziphttp://www.onjava.com/pub/a/onjava/2004/11/24/replication1.htmlhttp://www.onjava.com/pub/a/onjava/2004/11/24/replication1.html?page=2http://www.onjava.com/pub/a/onjava/2004/04/14/clustering.htmlhttp://www.onjava.com/pub/a/onjava/2004/04/14/clustering.html?page=2R-proxy:http://www.douzhe.com/docs/ApacheManual/mod/mod_proxy.html#proxypassreversehttp://www.douzhe.com/docs/ApacheManual/mod/mod_rewrite.html#rewritemaphttp://www.douzhe.com/docs/ApacheManual/mod/mod_rewrite.html#rewriterule mod_jk: http://jakarta.apache.org/tomcat/connectors-doc/config/apache.htmlhttp://jakarta.apache.org/tomcat/connectors-doc/config/workers.htmlhttp://jakarta.apache.org/tomcat/connectors-doc/common/ajpv13a.htmlhttp://www.mail-archive.com/tomcat-user@jakarta.apache.org/msg146787.html  相对已经过时的资料(因为mod_jk2方式已经不被推荐,mod_jk2已经不再被更新了):http://www.sentom.net/list.asp?id=14http://www.linuxforum.net/docnew/showthreaded.php?Cat=&Board=server&Number=507&page=1&view=collapsed&sb=5&o=all&fpart=http://www.ecoo.net/list.asp?articleid=2311http://www.linuxaid.com.cn/forum/showdoc.jsp?l=1&i=81013&m=0http://search.csdn.net/expert/topicview1.asp?id=1706745http://www.chinaitlab.com/www/news/article_show.asp?id=11921  可能有用的资料:(因为我还没有仔细看过) http://www.phpv.net/article.php/92 http://raibledesigns.com/tomcat/ http://www.crazysquirrel.com/debian/tomcat55.php

时间: 2024-12-24 07:21:46

Tomcat集群的三种负载均衡方式优缺点对照。的相关文章

LVS:三种负载均衡方式比较+另三种负载均衡方式

什么是LVS?   首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的.高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序.   为此,在设计时需要考虑系统的透明性.可伸缩性.高可用性和易管理性.一般来说,LVS集群

什么是集群,什么是负载均衡,他们2者的关系是什么啊。

问题描述 什么是集群,什么是负载均衡,他们2者的关系是什么啊.希望有自己的理解,不要copy长篇大论..因为我已经看过了.就是看得迷迷糊糊的所以才请教大家.我可能不可以这样理解:1:集群是一种多服务器结构(可能每个服务器部署在多个电脑上,也可以是1个).2:是否集群主要看是不是多个相同应用被部署.(可以在多台电脑上,也可以是1个)3:要负载均衡必须集群. 解决方案 解决方案二:集群是一个统称,他分为好几种,如高性能科学群集.负载均衡群集.高可用性群集等.科学群集通常,这种集群涉及为群集开发并行编

activemq分布式集群是怎样实现负载均衡的?仅仅是针对消息的负载均衡吗?

问题描述 activemq分布式集群是怎样实现负载均衡的?仅仅是针对消息的负载均衡吗? 请问大家activemq是怎样实现负载均衡的呢?只是failover()吗?还是针对于消息平均发送给消费者呢?比如说两台机器搭建分布式集群后,100个消费者连上后怎么平均分配?还有一台重启了之后怎样实现它上面的客户端再连回去呢?activemq负载均衡是什么原理? 解决方案 参考下http://blog.csdn.net/jason5186/article/details/18702523http://www

lvs集群-lvs +nginx集群、nginx自身集群和 lvs自身集群,三种集群的优缺点

问题描述 lvs +nginx集群.nginx自身集群和 lvs自身集群,三种集群的优缺点 lvs +nginx集群.nginx+keepalive集群.lvs+keepalive集群 三者之间有什么优缺点?尤其nginx+keepalive自身可以实现集群,为什么还有人采用lvs +nginx集群呢,多加一个lvs呢?

WAS集群请求分发和负载均衡问题

问题描述 楼主有个生产环境,有3台服务器,以下简称为A/B/C,上面建了A/B/C三个node节点,IHS和DM也部署在A上,只有1个IHS,简单的1拖3架构.建了1个水平集群,3个SERVER分布在3个node上.SERVER配置只改动了JVM大小.webcontainer大小.JVM日志.cookie名(每个server不一样),其他均未改动.IHS只改动了maxclients,其他未改动.IHSPLUGIN均为默认配置,未改动.楼主碰到的问题:有个应用,登录的时候会把一些信息存储到SESS

tomcat集群实现源码级别剖析

随着互联网快速发展,各种各样供外部访问的系统越来越多且访问量越来越大,以前Web容器可以包揽接收-逻辑处理-响应整个请求生命周期的工作,现在为了构建让更多用户访问更强大的系统,人们通过不断地业务解耦.架构解耦将web容器的逻辑处理抽离交由其他中间件处理,例如缓存中间件.消息队列中间件.数据存储中间件等等.Web容器负责的工作可能越来越少,但是它确实必不可少的部分,它负责接收用户请求并分别调用各个服务最后响应.可以说目前最受欢迎的web容器是用Java写的tomcat小猫,由于生产上的tomcat

Tomcat集群如何同步会话

Tocmat集群中最重要的交换信息就是会话消息,对某个tomcat实例某会话做的更改要同步到集群其他tomcat实例的该会话对象,这样才能保证集群所有实例的会话数据一致.在tribes组件的基础上完成这些工作就相当容易些,tribes是tomcat实现的一个通信框架. 如下图,tomcat实现会话同步的过程中大致会使用如下组件,现在假设中间的tomcat实例的会话改变了,它会通过会话管理器Manager将改变的动作消息封装成消息然后调用集群对象Cluster,通过Cluster将消息发送出去,同

tomcat集群机制剖析及其生产部署选型

为什么要使用集群? 为什么要使用集群?主要有两方面原因:一是对于一些核心系统要求长期不能中断服务,为了提供高可用性我们需要由多台机器组成的集群:另外一方面,随着访问量越来越大且业务逻辑越来越复杂,单台机器的处理能力已经不足以处理如此多且复杂的逻辑,于是需要增加若干台机器使整个服务处理能力得到提升. 集群难点在哪? 如果说一个web应用不涉及会话的话,那么做集群是相当简单的,因为节点都是无状态的,集群内各个节点无需互相通信,只需要将各个请求均匀分配到集群节点即可.但基本所有web应用都会使用会话机

nginx+tomcat集群负载均衡中的多虚拟主机配置

虽然夜深了,但是还是解决了这个困扰我一个晚上的问题,记录下来备查. 接着我前不久写的这一篇来的:Linux下nginx和tomcat的整合http://hi.baidu.com/gnaiqeh/blog/item/2f43dac9e98d781a7f3e6fc7.html 举个例子,现在是这样的情况:我现在有a.b.c三个不同的应用,每个Tomcat集群机(一共3个)上都建立了这三个应用的虚拟主机,我要把这三个应用用一个nginx来负载均衡. 中间测试了很多次,失败的过程就不多说了,直接说最终解