`

mod_jk的session管理(转)

 
阅读更多

mod_jk--session

1 :true;0:false

worker.controller.sticky_session=1
worker.controller.sticky_session_force=0
 
一次请求中 session 只会在一个tomcat上,当该tomcat奔溃后,请求会跳转到其他tomcat上,但是其session不会复制到跳转后的tomcat上
 
worker.controller.sticky_session=0
worker.controller.sticky_session_force=0
 
每次请求都会跳转到其他tomcat上,(如果有AB两个tomcat负载均衡值都为1,第一次请求A session为A1,第二次请求跳转到B session B2,第三次又回到A session为 A1 和 A3,第四次跳转到B session 为 B2 和 B4
 
worker.controller.sticky_session=1
worker.controller.sticky_session_force=1
 
一次请求中 session 只会在一个tomcat上,当该tomcat奔溃后,服务端会返回Service Temporarily Unavailable:The server is 
temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
 
worker.controller.sticky_session=0
worker.controller.sticky_session_force=1
 
每次请求都会跳转到其他tomcat上,(如果有AB两个tomcat负载均衡值都为1,第一次请求A session为A1,第二次请求跳转到B session B2,第三次又回到A session为A3,第四次跳转到B session B4,即每次跳转都不会带上session,也不会保留原有的session

tomcat session

tomcat集群方式

Apache,Tomcat负载均衡和集群:
对请求的处理又有两种不同的方式:负载平衡、状态复制(即集群).
1. 负载平衡:
每台服务器都是独立的,只是对请求的负载进行平衡,而不对状态(SESSION)进行复制。
2. 状态复制(集群):先进行负载平衡,再在各服务器间复制应用状态。

一种是把所有Session数据放到一台服务器上或者数据库中,集群中的所有节点通过访问这台Session服务器来获取数据;

另一种就是在集群中的所有节点间进行Session数据的同步拷贝,任何一个节点均保存了所有的Session数据。


对于tomcat的集群有两种方式,这个主要是针对session而言的。

一种就是sticky模式,即黏性会话模式。所谓sticky模式就是说同一个用户的访问请求都被派送到同一个tomcat实例上,这样我们就无须在多台服务器之间实现session共享了,这是其好处,不好的地方就是不能实现failureover了,一但用户访问的机器挂掉,那么其session就会丢失。

另外一种就是session复制模式了。session复制模式就可以很好的解决failureover的问题,即使某一台web服务器挂掉了,用户的请求还会被负载到其他的web服务器上,而且session也被复制了,这样对用户而言就像是在同一台机器上操作一样,不好的地方就是session复制需要系统资源和网络的开销,尤其是当web服务器多的时候或session里存储的数据量大的时候,这点将会比较的明显(不过自己还没有做这方面的测试)。

针对这两种方式的弊端和好处,我们可以采用将两种方式结合的方式来达到更好的效果,那就是sticky+session复制模式了。用户的请求按照sticky方式被分发到同一个web服务器上,同时tomcat在后台做异步复制(非同步)session到其他web服务器,这样我们使用sticky的简便性,同时又有了一定的容错能力。

session复制配置

tomcat集群中的session管理,主要有两种方式:

1).粘性session

表示从同一窗口发来的请求都将有集群中的同一个tomcat进行处理。配置方式是在上面workers.properties文件中

Xml代码 
worker.lbcontroller.sticky_session=True 
worker.lbcontroller.sticky_session=True 粘性session的好处在不会在不同的tomcat上来回跳动处理请求,但是坏处是如果处理该session的tomcat崩溃,那么之后的请求将由其他tomcat处理,原有session失效而重新新建一个新的session,这样如果继续从session取值,会抛出nullpointer的访问异常。

2).session复制

session复制是指tomcat彼此之间通过组播方式将session发到各个tomcat实例上,如果其中一个访问出错,则另外tomcat仍然具有有效的session内容,从而能正常接管其session。坏处是当tomcat实例很多,或者用户在session中有大量操作时,组播发送的信息量十分惊人。session复制配置则是在发布的web应用程序中的web.xml中添加

Xml代码 


<distributable/> 
<distributable/> 此外,session复制所需的JDK必须是JDK 5.0及其以上版本。

分享到:
评论

相关推荐

    Apache+Tomcat实现负载均衡及集群(session同步)--三、动静分离(1)使用mod_jk

    NULL 博文链接:https://ywu.iteye.com/blog/2246306

    Jboss6+mod_jk+apache2.2集群实现session的复制

    实现两个节点之间的无缝负载均衡,实时session复制,当一台机子的jboss的服务跨掉以后,自动会切换到另外一台服务器上面,对于用户的使用没有丝毫的影响。

    tomcat8+redis保持session共享,实现真正意义上的负载均衡

    本资源包含有nginx+tomcat+mysql主从+redis部署详细文档以及安装包,因开源组件tomcat-redis-session-manage-tomcat8.jar目前不支持tomcat8,本人亲自对该jar包对源码进行过修改可支持tomcat8 亲测有效,非常适合不...

    Apache+tomcat集群环境配置

    apache+mod_jk+tomcat的集群环境配置,实现多个tomcat分担网络请求并同步session。文件里包含了一个配置说明文档,所需要的所有文件

    apache+tomcat 实现负载均衡

    LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so #指定 workers.properties文件路径 JkWorkersFile conf/workers.properties #指定哪些请求交给tomcat处理,"controller"为在workers.propertise...

    Apache与Tomcat集群负载均衡(一键打包解压即可运行)

    worker.controller.sticky_session_force=1 #worker.controller.sticky_session=1 如需手动配置内容如下: Apache: 1.安装mod_jk-1.2.31-httpd-2.2.3.so至Apache目录的modules目录下 2.拷贝mod_jk.conf和workers...

    tomcat cluster 集群 session复制

    再在Apache的mod_jk模块里,对每个worker配置上redirect和activation属性。 将Tomcat1,Tomcat3,Tomcat5做为对外正常提供服务器的Tomcat, Tomcat2,Tomcat4,Tomcat6作为分别对应的灾难恢复的备份Tomcat. 即比如...

    Apache2.4+tomcat7.0.73的配置以及说明

    Apache2.4+tomcat7.0.73实现负载均衡以及session共享复制。 包括mod_proxy代理、mod_jk两种方式。 文件包括已经实现的配置以及对应的文件

    APACHE 2.2.9+TOMCAT6.0.18配置负载均衡

    将以下Module的注释去掉,这里并没有使用mod_jk.so进行apache和tomcat的链接,从2.X以后apache自身已集成了mod_jk.so的功能。只需简单的把下面几行去掉注释,就相当于以前用mod_jk.so比较繁琐的配置了。这里主要采用...

    负载均衡实例

    里边有实例以及配备的文档,文档中有相关的说明。为了减少大部分开发人员的时间,将关键的文件有说明以及配置的关键点,对照实例即可使用。

    pro_apache_third_edition..pdf

    Contents About the Author...............................................................................................xix About the Technical Reviewer and Contributing Author.................xxi ...

    梦想新闻发布系统-正式版

    开发平台:Win2003 + Apache2.0.52 + Tomcat5.54 + Mod_jk 1.2.6 + JDK1.5 程序正常运行需要JVM(Java虚拟机)1.5以上的版本。 安装说明: 一、首先请自行建好JSP服务器。单独运行或者与Apache集成都行(我用的是...

Global site tag (gtag.js) - Google Analytics