zoukankan      html  css  js  c++  java
  • tomcat集群

    apache整合tomcat部署集群

    http://www.cnblogs.com/God-froest/p/apache_tomcat.html

    今天看到"基于apache的tomcat负载均衡和集群配置 "这篇文章成为javaEye热点。

    略看了一下,感觉太复杂,要配置的东西太多,因此在这里写出一种更简洁的方法。

    要集群tomcat主要是解决SESSION共享的问题,因此我利用memcached来保存session,多台TOMCAT服务器即可共享SESSION了。


    你可以自己写tomcat的扩展来保存SESSION到memcached。

    这里推荐使用memcached-session-manager这个开源项目(http://code.google.com/p/memcached-session-manager/ ),下面简称msm。


    如何安装nginx、memcached、tomcat这些就不多说了。


    先说明一下测试环境:

    tomcat1、nginx、memcached安装在192.168.1.11

    tomcat2安装在192.168.1.101


    前提:以下论述不包含 服务器 宕机 的有效处理

    其实同步session只是为了保证一个用户在访问时,无论访问到哪台服务器,session都要一致,那为什么要让一个用户去访问1台以上的服务器呢?

    ngnix做基于访问IP地址的分发策略 跟 session的策略不太一致,session 的 key一般是保存在cookie中,而 一个用户却可能改变IP,但cookie不变,session就应当保持

    所以我做了nginx的基于cookie中某个值的分发策略,在基于IP的策略中,nginx可以保证IP相同的必定访问同一台机器,基于cookie中某个值的分发策略则可以保证只要cookie不丢,就可以访问同一台机器,避免因为同一用户可能在集群环境中访问多台服务器而必须考虑session共享的复杂问题


    同意,基于IP分发的策略已经能解决绝大部分需求。



    nginx在配置upstream时,有两个参数:
    ip_hash(同一IP一直使用同一台server服务)
    weight(server的使用权重,数值越大,nginx分发的请求越多)

    通过配合这两个参数,能粗糙地解决session共享的问题。
    对于一些不是太依赖session的应用,或者只有用户登录时保存,那么我认为可以用Cookies代替。

  • 相关阅读:
    C#+API实现指定窗体激活
    DEVC++学习之(一)
    javascript 实现原生下载的各种情况
    IssueVision 之WebService安全篇
    Add relationship to BS sample
    ExpandRelationWithCtxt 与 GetRelatedObjects 的区别
    C#调用javascript
    解禁网页限制
    Unix cc options vs gcc options
    IssueVision 之模式篇
  • 原文地址:https://www.cnblogs.com/createyuan/p/5774130.html
Copyright © 2011-2022 走看看