ITPub博客

首页 > 应用开发 > IT综合 > cas 集群tomcat session组播复制

cas 集群tomcat session组播复制

IT综合 作者:amazinget 时间:2014-10-16 22:36:46 0 删除 编辑

cas 集群tomcat session组播复制


这个方案相对比较简单容易测试,但是性能不太好,在生产应用当tomcat服务器数量不是很多的进候可以一试,如果多了就改为memcached-session-manager方式吧。

假设tomcat1:192.168.1.100:8080  
tomcat2:192.168.1.101:8080
nginx 192.168.1.103:80  域名cas.test.com 进行负载均衡tomcat1,tomcat2

cas的组播集群修改步骤:

1.修改cas.properties中的host.name,这个值可以保证产生的ticket是全局唯一的 ;
2.修改web.xml 增加  ;

3.ticket的外部存储,可以应用jpa,ehcache,memcache等方法参考相关的文章;

4.修改ticketGrantingTicketCookieGenerator.xml 文件中

p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASTGC"
p:cookiePath="/cas"  />

为

p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASTGC"
p:cookiePath="/cas"  p:cookieDomain="cas.test.com"/>

5.修改warnCookieGenerator.xml文件中的

p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASPRIVACY"
p:cookiePath="/cas"  />

为

p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASPRIVACY"
p:cookiePath="/cas"   p:cookieDomain="cas.test.com"/>

进行4,5两步的修改为了让tomcat1产生的cookie能够被tomcat2所读取。

6.tomcat session复制,关于tomcat的session复制集群。
关于以组播的方式构建tomcat集群,则tomcat的server.xml的配置如下:
将
改为  其中jvmRoute 这个参数要全局唯一,即要集群中的所有服务器的配置是唯一的。
并在下面
 <!--
     
      -->
增加如下配置:
 
                <!--
                             expireSessionsOnShutdown="false"  
                   notifyListenersOnReplication="true"/> 这种是all to all 的复制-->
                    <!-- 这种是主从式的复制 -->
                 expireSessionsOnShutdown="false"  
             notifyListenersOnReplication="true"  
             mapSendOptions="6"/>  
         
                                    address="228.0.0.4"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>
                        <!--如果auto值报错,则将值改为运行tomcat的机器ip地址  -->
                                  address="auto"
                      port="4001"
                      autoBind="100"
                      selectorTimeout="5000"
                      maxThreads="6"/>

           
             
           

           
            <!--  静态成员配置
            
            
                                            uniqueId="{10,1,0,100,0,0,0,0,0,0,0,0,0,0,0,0}" />
                                            uniqueId="{10,1,0,101,0,0,0,0,0,0,0,0,0,0,0,0}" />    
            

         -->

          
         


                           filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/>  
         
< !--
                              tempDir="/tmp/war-temp/"
                    deployDir="/tmp/war-deploy/"
                    watchDir="/tmp/war-listen/"
                    watchEnabled="false"/>  -->

         
         
       


    每个tomcat中都需要配置,但是需要保证jvmRoute值不同。对于tomcat运行在windows系统上,则配置至此完毕,将tomcat运行即可看到相关的组播信息。但是如果tomcat是运行在linux系统,则需要进行如下的设置,因为linux默认是不开启组播服务的,可以通过
 1.    /sbin/ifconfig -a 查看相应的服务器的网卡是否支持组播,如果输出  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    则表示网卡支持组播,如果不支持,则需要重新编译linux内核重新安装系统,这个我们就不考虑了。
 2.如果从第一步,可知网卡支持组播,则执行如下命令(这个命令的执行需要root账号来执行):
   /sbin/route add –net 224.0.0.0  netmask 240.0.0.0  dev eth0
这样linux配置至此完毕,运行tomcat可看到相关的组播信息。


转载于:

http://blog.csdn.net/zhurhyme/article/details/39298419

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29959940/viewspace-1301255/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2014-10-15

  • 博文量
    14
  • 访问量
    70135