设为首页 收藏本站
查看: 818|回复: 0

[经验分享] Tomcat群集配置

[复制链接]

尚未签到

发表于 2015-8-8 11:14:58 | 显示全部楼层 |阅读模式
大型的企业应用每天都需要承受巨大的访问量,在着巨大访问量的背后有数台服务器支撑着,如果一台服务器崩溃了,那么其他服务器可以使企业应用继续运行,用户对服务器的运作是透明化的,如何实现这种透明化呢?由如下问题需要解决。  一.Session的复制
  二.如何将请求发送到正常的服务器
  针对以上问题,可以使用群集和负载均衡来解决,整体架构如下:


(图片来自:onjava.com)  中间由一台服务器做负载均衡(Load Balancer),它将所有请求,根据一定的负载均衡规则发送给指定的群集服务器(Cluster),群集服务器拥有着相同的状态和相同的应用程序,并且他们的Session是相互复制的,这样,不管访问哪台服务器都具有相同的结果,即使一台服务器崩溃掉以后,可以由其他集群服务器继续负责应用程序的运行。
Tomcat中如何配置群集
  我们假设有如下场景,一台负载均衡服务器负责请求的均衡,群集服务器A和群集服务器B组成一个群集,当某个群集服务器崩溃后,另外一台继续负责应用程序的运行。
一.           配置Tomcat5.5.12群集服务器A
  修改Tomcat配置文件server.xml
  1.群集服务器A的端口号与B不冲突,即使Server Port,Connector,Coyote/JK2 AJP Connector的端口号唯一
  2.在Host元素下增加以下内容:
  
                    
              
             
              
              
              
                    
              
                       
              
          
  3.修改Web应用程序配置文件web.xml
  在web.xml文件中元素下增加以下内容:
  
       
二.           配置Tomcat5.5.12群集服务器B
  与群集服务器A配置基本相同,唯一不同的地方就是server.xml文件中
  
  tcpListenAddress应为本机地址,如果两台群集服务器在一台机器上,则端口号要不同
         注意:B的其他端口不要与A冲突。
三.           群集服务器具体配置结果
配置参数

群集服务器 A

群集服务器B

Server Port

9005

10005

Connector

9080

10080

Coyote/JK2 AJP Connector

9009

10009

Cluster mcastAddr

228.0.0.4

228.0.0.4

Cluster mcastPort

45564

45564

tcpListenAddress

本机IP地址

本机IP地址

Cluster tcpListenPort

4001

4002

  Mcast* 用于广播,所有群集服务器需要填写相同的配置
  tcpListen* 本机的IP,群集服务器启动时,会将自己的IP和端口号广播出去,其他群集服务器收到后,响应广播发出者。
四.           测试群集
  启动群集服务器A,再启动群集服务器B会显示群集服务器的信息,表示群集服务器配置成功
五.           配置负载均衡服务器Apache2.2.3
  现在虽然群集已经有了相同的状态,但需要不同的IP地址才能访问到服务器A与B,现在我们配置一台负载均衡服务器来实现统一的入口访问,和负载的均衡。
  下载Apache服务器2.2.3。
  修改httpd.conf文件
  将以下Module的注释去掉
  LoadModule proxy_module modules/mod_proxy.so
  LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
  LoadModule proxy_http_module modules/mod_proxy_http.so
  并增加以下元素
  ProxyRequests Off
  ProxyPass /helloworld balancer://mycluster stickysession=jsessionid nofailover=On
  
  BalancerMember http://10.10.13.145:9080
  BalancerMember http://10.10.13.145:10080 smax=1 loadfactor=20
  
  
  SetHandler balancer-manager
  Order Deny,Allow
  Deny from all
  Allow from all
  
  
  SetHandler server-status
  Order Deny,Allow
  Deny from all
  Allow from all
  
  其中
  ProxyPass /helloworld balancer://mycluster stickysession=jsessionid nofailover=On
  
  BalancerMember http://10.10.13.145:9080
  BalancerMember http://10.10.13.145:10080 smax=1 loadfactor=20
  
  ProxyPass为代理转发的Url,即将所有访问/helloworld的请求转发到群集balancer://mycluster
  BalancerMember为群集的成员,即群集服务器A或B,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember。
    
  Nginx 0.8.16 负载均衡
    
  upstream service {
server 10.10.13.145:8081;
  server 10.10.13.145:10080;
}
    
      location /helloworld/ {
            index  index.jhtml index.html login_page.jhtml;
            proxy_pass http://service/;
            proxy_set_header   Host             $host;
            client_max_body_size     100m;
            client_body_buffer_size  128k;
            proxy_connect_timeout    600;
            proxy_read_timeout       600;
            proxy_send_timeout       6000;
            proxy_buffer_size        16k;
            proxy_buffers            4 64k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
          }
  

  配置好后,启动Apahce或者Nginx服务器,访问localhost/hellworld就会看到群集服务器中应用返回的结果。恭喜你,负载均衡和群集已经配置成功了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-95552-1-1.html 上篇帖子: tomcat服务器开启gzip功能的方法 下篇帖子: 设置myEclipse的tomcat jvm内存
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表