Tomcat的集群
单机多tomcat集群
1、在本机运行多个tomcat,在E:\appserver\tomcat7.0_cluster部署两个tomcat
Tomcat7.028_as1,Tomcat7.028_as2
2、修改tomcat配置
2.1端口
As1:http->9180,ajp->9109,shutdown-> 9105
As2:http->9280,ajp->9209,shutdown->9205
2.2服务器别名
As1:jvmRoute="jvm1 “
As2:jvmRoute="jvm2"
2.3打开默认集群模式(tomcat5.5与tomcat6、7不同)
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
2.4修改tomcat启动窗口名称,便于区分
As1:set TITLE=Tomcat_as1
As2:set TITLE=Tomcat_as2
1、部署测试应用
1.1将test文件夹放到Tomcat7.028_as1和Tomcat7.028_as2并行目录,即是E:\appserver\tomcat7.0_cluster
1.2在tomcat的conf\Catalina\localhost建立test.xml,内容如下:
<?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="E:\appserver\tomcat7.0_cluster\test" path="/test" reloadable="false" >
</Context>
2、访问测试应用
http://127.0.0.1:9180/test/
http://127.0.0.1:9280/test/
3、会话复制
在应用中web.xm加入<distributable/>
Apache与tomcat实现负载均衡
#让Apache监听80端口
Listen 80
# 加载相关模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
#Proxy模块基本配置,禁止正向代理
#在</IfModule>标签后面加入如下配置
ProxyRequests Off
#ProxyVia On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
#配置集群,实现轮询方式
SetEnv proxy-nokeepalive 1
ProxyPass /test/ balancer://TomcatCluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=Off timeout=5 maxattempts=3
ProxyPassReverse /test/ balancer://TomcatCluster/
#加入集群的Tomcat应用主机
#9109及9209详见Tomcat Server.xml中相应配置
#route详见Tomcat Server.xml中相应配置
<Proxy balancer://TomcatCluster>
BalancerMember ajp://127.0.0.1:9109/test/ loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:9209/test/ loadfactor=1 route=jvm2
</Proxy>
轮询均衡策略的配置
ProxyPass /test balancer://proxy
<Proxy balancer://proxy>
BalancerMember http://192.168.6.37:6888/
BalancerMember http://192.168.6.38:6888/
</Proxy>
我们来观察上述的参数“ProxyPass /test balancer://proxy”,其中,“ProxyPass”是配置虚拟服务器的命令,“/test”代表发送Web请求的URL前缀,如:http://myserver/test或者http://myserver/test/aaa,这些URL都将符合上述过滤条件;“balancer://proxy”表示要配置负载均衡,proxy代表负载均衡名;BalancerMember 及其后面的URL表示要配置的后台服务器,其中URL为后台服务器请求时的URL。以上面的配置为例,实现负载均衡的原理如下:
假设Apache接收到http://localhost/test/aaa请求,由于该请求满足ProxyPass条件(其URL前缀为“/test”),该请求会被分发到后台某一个BalancerMember,譬如,该请求可能会转发到 http://192.168.6.37:6888/aaa进行处理。当第二个满足条件的URL请求过来时,该请求可能会被分发到另外一台BalancerMember,譬如,可能会转发到http://192.168.6.38:6888/。如此循环反复,便实现了负载均衡的机制。
按权重分配均衡策略的配置
ProxyPass /test balancer://proxy lbmethod=byrequests
<Proxy balancer://proxy>
BalancerMember http://192.168.6.37:6888/ loadfactor=3
BalancerMember http://192.168.6.38:6888/ loadfactor=1
</Proxy>
参数”loadfactor”表示后台服务器负载到由Apache发送请求的权值,该值默认为1,可以将该值设置为1到100之间的任何值。以上面的配置为例,介绍如何实现按权重分配的负载均衡,现假设Apache收到http://myserver/test/aaa 4次这样的请求,该请求分别被负载到后台服务器,则有3次连续的这样请求被负载到BalancerMember为http://192.168.6.37:6888的服务器,有1次这样的请求被负载BalancerMember为http://192.168.6.38:6888后台服务器。实现了按照权重连续分配的均衡策略。
按权重分配均衡策略的配置
ProxyPass /test balancer://proxy lbmethod=byrequests
<Proxy balancer://proxy>
BalancerMember http://192.168.6.37:6888/ loadfactor=3
BalancerMember http://192.168.6.38:6888/ loadfactor=1
</Proxy>
参数”loadfactor”表示后台服务器负载到由Apache发送请求的权值,该值默认为1,可以将该值设置为1到100之间的任何值。以上面的配置为例,介绍如何实现按权重分配的负载均衡,现假设Apache收到http://myserver/test/aaa 4次这样的请求,该请求分别被负载到后台服务器,则有3次连续的这样请求被负载到BalancerMember为http://192.168.6.37:6888的服务器,有1次这样的请求被负载BalancerMember为http://192.168.6.38:6888后台服务器。实现了按照权重连续分配的均衡策略。
权重请求响应负载均衡策略的配置
ProxyPass /test balancer://proxy lbmethod=bytraffic
<Proxy balancer://proxy>
BalancerMember http://192.168.6.37:6888/ loadfactor=3
BalancerMember http://192.168.6.38:6888/ loadfactor=1
</Proxy>
参数“lbmethod=bytraffic”表示后台服务器负载请求和响应的字节数,处理字节数的多少是以权值的方式来表示的。“loadfactor”表示后台服务器处理负载请求和响应字节数的权值,该值默认为1,可以将该值设置在1到100的任何值。根据以上配置是这么进行均衡负载的,假设Apache接收到http://myserver/test/aaa请求,将请求转发给后台服务器,如果BalancerMember为http://192.168.6.37:6888后台服务器负载到这个请求,那么它处理请求和响应的字节数是BalancerMember为http://192.168.6.38:6888 服务器的3倍(回想(2)均衡配置,(2)是以请求数作为权重负载均衡的,(3)是以流量为权重负载均衡的,这是最大的区别)。
粘性会话
ProxyPass /test/ balancer://TomcatCluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=Off timeout=5 maxattempts=3
ProxyPassReverse /test/ balancer://TomcatCluster/
stickysession均衡器粘连会话名称。该值常常会被设置为类似JSESSIONID或者PHPSESSIONID之类的值,他依赖于支持会话的后端应用服务器。如果后端服务器使用不同的cookie名称或者URL编码的ID(像servlet容器),使用|来分开他们。第一个部分针对cookie,第二个针对路径。
stickysession=JSESSIONID ,启用粘性会话
空,不启用粘性会话,默认为空
失效转移
ProxyPass /test/ balancer://TomcatCluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=Off timeout=5 maxattempts=3
ProxyPassReverse /test/ balancer://TomcatCluster/
Nofailover,默认为Off。如果设为‘On’,当工作单元被禁用或者出错时,会话则立即中断。可以将该值设为On如果后端服务器不支持会话复制(Session replication)。
nofailover=Off开启失效转移
nofailover=On关闭失效转移
分享到:
相关推荐
Apache Tomcat 集群负载均衡 ##### 1.13 Tomcat 端口配置 为了实现集群中的负载均衡,需要对 Tomcat 实例上的端口进行配置。这通常涉及到以下端口: - **HTTP 端口**:用于接收客户端的 HTTP 请求。 - **AJP 端口*...
【Tomcat集群与负载均衡(windows)】 在企业级应用中,Tomcat因其轻量级、易用性而被广泛采用。然而,随着系统规模的扩大,单个Tomcat服务器的负载能力可能无法满足需求,这时就需要考虑部署Tomcat集群以实现负载...
### Tomcat集群与负载均衡详解 #### 一、前言 在现代Web应用开发中,随着用户数量的增长和业务需求的变化,单台服务器往往难以满足高性能、高可用性的要求。因此,采用多台服务器组成的集群架构成为了一种常见的...
【Apache+Tomcat 集群与负载均衡及Session...通过以上配置,Apache+Tomcat集群可以实现高效的负载均衡和高可用性,同时通过Session绑定确保用户会话的连续性。注意定期监控和优化集群性能,以应对不断变化的业务需求。
### Tomcat集群与负载均衡实现详解 #### 一、环境说明 为了实现Tomcat集群以及负载均衡,首先需要搭建一个合理的环境。以下是一些基本的环境配置信息: 1. **服务器配置**: - 共计四台服务器,其中一台用于安装...
### Apache+Tomcat集群与负载均衡配置详解 #### 一、环境说明 为了实现Apache与Tomcat集群的负载均衡,我们需要准备以下环境: 1. **服务器配置**:四台服务器,其中一台安装Apache,三台安装Tomcat。 - Apache...
【Apache和Tomcat集群与负载均衡】 Apache和Tomcat集群的构建主要目的是为了提高系统可用性和性能,通过负载均衡技术将客户端的请求分散到多个服务器上,以减轻单个服务器的压力,防止过载并提高服务的可靠性。在这...
### Nginx+Tomcat集群部署与负载均衡 #### 版本信息与集群及负载均衡概念 在深入了解如何实现Nginx与Tomcat集群的部署和负载均衡之前,我们需要先了解一些基本的概念以及版本信息。 - **集群**:通常指一组计算机...
Tomcat集群和负载均衡配置.docx server.xml httpd.conf context.xml
### Apache、Tomcat集群与负载均衡详解 #### 一、引言 随着互联网技术的不断发展,用户对服务的要求越来越高,单台服务器往往无法满足高并发、高性能的需求。因此,搭建集群成为了提高系统可用性、扩展性的有效...
当我们谈论“Tomcat集群和负载均衡”时,我们指的是通过多台Tomcat服务器来分发和处理来自用户的网络请求,以提高系统可用性和性能。 首先,让我们了解什么是Tomcat集群。在集群环境中,多台Tomcat服务器共享相同的...