Apache+Tomcat实现负载均衡及集群(session同步)--五、session同步(1)使用内存复制

来源:互联网 发布:淘宝网天猫手机外壳 编辑:程序博客网 时间:2024/06/01 08:18
打开tomcat的配置文件conf/server.xml,在主机Host元素中加入如下配置:

Xml代码  收藏代码
  1. <!-- 集群配置 -->  
  2.       <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">  
  3.    <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>  
  4.    <Channel className="org.apache.catalina.tribes.group.GroupChannel">  
  5.     <!-- 配置membership服务,有规律的发送脉冲广播 -->  
  6.     <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/>  
  7.     <!-- receiver组件,用于从其他成员接收复制的数据信息 -->  
  8.     <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"    
  9.       address="192.168.137.211" port="4001" autoBind="100" selectorTimeout="5000"    
  10.       maxThreads="6"/>  
  11.     <!-- sender组件,用于给组中其他成员发送复制的数据信息 -->  
  12.     <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">  
  13.      <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>  
  14.     </Sender>  
  15.     <!-- 消息处理组件,用于改变通道的操作行为 -->  
  16.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>  
  17.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>  
  18.    </Channel>  
  19.    <!-- 过滤器,过滤了任何对静态页面、图形、js的请求,这些请求不会修改会话 -->  
  20.    <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>  
  21.    <!-- 过滤器,同mod_jk一起使用,在故障转移期间保证会话的粘性 -->  
  22.    <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>  
  23.    <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"    
  24.      tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/"    
  25.      watchEnabled="false" />  
  26.    <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>  
  27.    <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>  
  28.     </Cluster>  
 
两台tomcat的server.xml都做如上配置
 
注意事项:
1、无论Apache中是使用mod_jk还是使用mod_proxy,都应该关闭sticky session,如果是mod_proxy,还需要将nofailover属性的值置为Off,以下示例使用mod_proxy配置


 
2、tomcat的引擎Engine元素的jvmRoute属性去掉,如果加上,属性值会附加在session id的末尾,造成两次请求session id由于属性值不同而不同


 
3、两台tomcat的server.xml配置文件,Receiver元素的address属性值是不一样的,都是本机的ip


 
4、确保两台tomcat的4001端口是打开的,tomcat广播通信需要用到该端口,如果防火墙关闭了了该端口的访问,会出现如下问题
skipping state transfer. No members active in cluster group.
 
WARNING: Error receiving mcast package. Sleeping 500ms
java.net.SocketException: Socket closed
 at java.net.PlainDatagramSocketImpl.receive0(Native Method)
 at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:145)
 at java.net.DatagramSocket.receive(DatagramSocket.java:725)
 at org.apache.catalina.tribes.membership.McastServiceImpl.receive(McastServiceImpl.java:314)
 at org.apache.catalina.tribes.membership.McastServiceImpl$ReceiverThread.run(McastServiceImpl.java:414)
 
5、应用程序shade的web.xml中需要加入distributable元素


 
依次启动tomcat、Apache,分别用Firefox和chrome浏览
目前火狐中的请求被211这台机器处理


 
刷新下页面


 
发现请求被243这台tomcat处理了,但是session id并没有改变
关闭211机器上的tomcat,继续刷新页面,重复刷几次,发现请求都是被243处理,session id并没有改变
 
至此,使用内存同步方式配置session同步已经完成,但是,tomcat默认的session存储策略是存储在文件系统中,对于一些高并发的系统,这往往会限制系统的相应时间。
阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 血糖高打胰岛素降不下去怎么办 儿童低烧37度1怎么办 小孩发烧一会冷一会热怎么办 月子里得的风湿怎么办 腰窝中间凸起肉怎么办 线雕后一个月脸发红肿胀怎么办 雷诺氏病手指僵硬疼怎么办 哺乳妈妈吃咸了怎么办 吃流产药哺乳了怎么办 坐月子吃咸了怎么办啊 拔罐放血后头晕怎么办 e道航界面不动怎么办 微信必须打开位置权限怎么办 魅族sim卡未启用怎么办 苹果6sgps信号弱怎么办 苹果5s4g网络慢怎么办 苹果5s上网很慢怎么办 手机一体机死机关不了机怎么办 联想一体机关不了机怎么办 纸巾盒的吸盘老化了怎么办 粘的挂钩老掉怎么办 车载手机支架吸盘吸不住怎么办 吸盘吸不住怎么办才好? 行车记录仪吸盘吸不住怎么办 小米儿童手表二维码丢了怎么办 艾蔻手表二维码丢失了怎么办 玩具直升机遥控器坏了怎么办 玩具飞机遥控器坏了怎么办 玩具无人机遥控器坏了怎么办 玩具遥控车遥控器坏了怎么办 用遥控器关电视后打不开怎么办 汽车遥控器按键坏了怎么办 用遥控器关了电视打不开怎么办 遥控器一个按键坏了怎么办 电视用遥控器关的打不开怎么办 电动车遥控器按键坏了怎么办 海尔空调遥控器按键坏了怎么办 汽车手机支架吸盘吸不住怎么办 车载手机支架吸盘坏了怎么办 假牙的吸盘坏了怎么办 燃气费用一直未交怎么办