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代替。

  • 相关阅读:
    NetSuite Batch Process Status
    NetSuite generated bank files and the Bank Reconciliation process
    Global Search file content in Gitlab repositories, search across repositories, search across all files
    FedEx Package Rate Integration with NetSuite direct integrate by WebServices
    git Merge branches
    git tag and NetSuite deployment tracking
    API 读写cookie的方法
    C# 生成缩略图
    解决jquery操作checkbox全选全不选无法勾选问题
    JS读取写入删除Cookie方法
  • 原文地址:https://www.cnblogs.com/createyuan/p/5774130.html
Copyright © 2011-2022 走看看