大型J2EE项目中的Web容器集群最佳组合–Nginx+Glasshfish+Memcached+ServletFilter

--->点击阅读更多    

这种方式将时下比较流行的几个东东进行了DIY整合。

先看看图,暂且告别一下文字:
http://www.javabloger.com/images/article_pic/glassfish/Nginx_Glasshfish_Memcached_ServletFilter_s.png


还没有看懂没有关系,听我慢慢的口水:
系统环境:
    1. 操作系统linux
    2. web服务器Nginx
    3.Jsp/Servlet 服务器 GlassFish,当然Tomcat/Jboss也可以。
    4.session存储 Memcached
    5.自己写的Servlet Filter 读/写 session ,以上图中架构由这5个部分组成。

压力分载
    由web服务器Nginx完成,  在 Nginx服务器的 conf/nginx.conf文件里面加入这个配置
        #upstream backend {
        #  server 192.168.10.2:8080 weight=1;
        #  server 192.168.10.3:8080 weight=1;
        #  server 192.168.10.4:8080 weight=1;
        #}

   
    你第一次请求Nginx将去指向192.168.10.2 ,第二次请求将去指向192.168.10.3,第三次请求将去指向192.168.10.4,第四次请求将去指向192.168.10.2,第五次请求将去指向192.168.10.3,以此类推。 如果同时有100个请求,2台机器上有33个请求,另外一台机器上有34个请求。这样简单的就实现了压力分载功能。

失效转发
    通过每台机器上 Servlet Filter 组件 向中央缓存 Memcached写入,就算你的Jsp/Servlet 容器器down掉你的用户session还在 Memcached中,而最前端的 Nginx服务器会做出判断哪些机器还活着,如果其中一台机器down掉,剩下的2台机器继续平均分配负载。

优势:
    1.比传统Apache的整合方式简单了10倍更加灵活和简单,修改Nginx服务器中不到30行的配置文件就可以搞定压力分载全部功能。

    2.采用Memcached+Servlet Filter将资源合理利用,传统的方式机器越多,需要同步的session会话就越多,系统负载就越大,采用这样的架构解决了一直困扰的问题。

参考资料:
http://www.javaeye.com/topic/82565
http://blog.csdn.net/sameseam/archive/2009/12/22/5055231.aspx


--->点击阅读更多    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

17奋斗8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值