tomcat集群

据说tomcat最高支持500并发,集群显得很有必要,将大量请求分发到多个tomcat来处理。

tomcat集群涉及两个问题:

          1.请求分发,自动将请求分发到不同的tomcat  

          2.session同步(session复制)


一、请求分发

请求分发可以通过apache 或者 nginx来实现。(此例用nginx)

进入nginx/conf目录, 复制nginx.conf 为 nginx.conf.bak 留作备份,编辑nginx。

a.在 http  > server > location 下添加 proxy_pass    http://127.0.0.1;

b.在 http > 下添加 

upstream 127.0.0.1 {
         #weigth参数表示权值,权值越高被分配到的几率越大
         server 127.0.0.1:8080 weight=1;
         server 127.0.0.1:8081 weight=2;
     }
完整配置文件见文末。

二、session复制

tomcat的session复制可参考tomcat文档 user guide 第18)

我采用的是在tomcat/conf/web.xml 文件 web-app 节点下添加 <distributable/>

tomcat/conf/server.xml     先修改两tomcat 服务端口,然后分别

 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">      
 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>


三、测试

启动 两tomcat,启动nginx,新建测试页分别放到webapp/ROOT 下,然后访问。


一些代码:

nginx.conf配置

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;


    server {
        listen       90;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm test.jsp;
            proxy_pass    http://127.0.0.1;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    upstream 127.0.0.1 {
         #weigth参数表示权值,权值越高被分配到的几率越大
         server 127.0.0.1:8080 weight=1;
         server 127.0.0.1:8081 weight=2;
     }


}

nginx服务管理:

D:\>cd Server
D:\Server>cd nginx-1.3.8

#停止服务
D:\Server\nginx-1.3.8>nginx -s stop

#测试环境
D:\Server\nginx-1.3.8>nginx -t

#启动服务
D:\Server\nginx-1.3.8>nginx -c conf/nginx.conf
暴力结束进程: taskkill -F -IM nginx.exe


还有一点问题,就是不同主机上tomcat session复制的问题,留待下次研究。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值