• tomcat session Memcache 共享


    背景  

          这次做的这个项目并发还真是挺高,单表一天产生百万条记录不在话下。结果导致运行过程中经常丢失数据,卡、慢等。开来终于要搞一次负载均衡了,之前实验学习了不少,但是没有在项目中实际用过,因为并发量不大,没有意义。负载后主要解决session共享问题,项目组小伙挺懂的,采用memcache解决。

          tomcat 采用memcache共享session 非常简单,只需考个jar,修改个xml文件基本可以。但是在windows下倒腾几天无果,没成功。网上教程也基本是linux的,应该是此项功能在linux下可使用。但是迁移linux时间较长,还不知道是否有其它问题,所以最后采用redis解决了。以下简单说下知识点,算是纪念。

     知识点 

          MSM(memcached-session-manager) 支持tomcat6 和tomcat7 ,利用 Value(Tomcat 阀)对Request进行跟踪。Request请求到来时,从memcached加载session,Request请求结束时,将tomcat session更新至memcached,以达到session共享之目的, 支持 sticky  和 non-sticky 模式。

           Sticky 模式:tomcat session 为 主session, memcached 为备 session。Request请求到来时, 从memcached加载备 session到 tomcat (仅当tomcat jvmroute发生变化时,否则直接取tomcat session);Request请求结束时,将tomcat session更新至memcached,以达到主备同步之目的。

           Non-Sticky模式:tomcat session 为 中转session, memcached1 为主 sessionmemcached 2 为备session。Request请求到来时,从memcached 2加载备 session 到 tomcat,(当 容器 中还是没有session 则从memcached1加载主 session 到 tomcat, 这种情况是只有一个memcached节点,或者有memcached1 出错时),Request请求结束时,将tomcat session更新至主memcached1和备memcached2,并且清除tomcat session 。以达到主备同步之目的。

  • 相关阅读:
    进程与线程
    java的引用
    基本类型变量、引用类型变量的在java中的存放位置
    Spring学习(三)
    Spring学习(一)
    Struts2学习(三)
    Vue,resource基本使用
    uni-app v-for数据的绑定唯一
    uni-app,v-for时 block 和 view 的使用
    Vue,生命周期函数演示(创建阶段的4个钩子函数,组件运行和销毁阶段的钩子函数)
  • 原文地址:https://www.cnblogs.com/sddychj/p/9552546.html
Copyright © 2020-2023  润新知