zoukankan      html  css  js  c++  java
  • 大型J2EE项目中的Web容器集群–Nginx+Glasshfish+Memcached+ServletFilter

    这个标题可能让你看不明白,因为他来自H.E. 山寨 方法,或者说我这种方式将时下比较流行的几个东东进行了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会话就越多,系统负载就越大,采用这样的架构解决了一直困扰的问题。

  • 相关阅读:
    16个能帮你找到网页设计灵感的网站
    Charts 图表插件
    jquery获取text,areatext,radio,checkbox,select值(转)
    原型开发、模型构建和设计反馈在线工具
    AutoComplete 自动完成插件(2)
    以蓝色为主题的网站设计灵感
    25个必须要学会的jQuery幻灯片插件教程(中)
    25个必须要学会的jQuery幻灯片插件教程(上)
    极具创意和趣味性的网站404错误页面设计集合
    用CSS制作横向菜单
  • 原文地址:https://www.cnblogs.com/sunwei2012/p/1690384.html
Copyright © 2011-2022 走看看