这是MemCacheDManager下载,是一款优秀的基于.NET平台的memcached性能监视工具。
废话不多说,直接进入主题。项目使用阿里云负载均衡+ECS服务器集群进行部署,Tomcat使用8.5版本。阿里云负载均衡提供会话保持功能,开启此功能后,同一IP地址的请求将转发到同一台后端ECS服务器处理,每台ECS中的Tomcat各自管理各自的Session,互不相关。
我们都知道对于一些大型的web2.0的网站,在正式部署时一般是部署在不同故障域的多台应用服务器上,以j2ee应用为例,一般我们都会部署在tomcat下,假如我们部署了10台tomcat服务器,那这10台tomcat可能是部署在不同的机器上,然后将应用程序copy到这10台tomcat下,然后启动所有tomcat,一般来说这样做的目的是为了达到负载均衡以及避免单点故障,另外也考虑到国内网络环境的原因,避免跨网络运营商访问而导致访问速度低下的问题,当然不要忘了坐镇这10台tomcat前端的还有我们的反向代理服务器,比如nginx,这个就是另一个话题了,我今天主要讲的是,对于这种分布式tomcat环境,我们如何保证session 的唯一性(我假定你知道session是什么)。这也是在日期公司的一个项目中负责解决的一个问题,当然实际上这并不是什么新的议题,之前就有很多解决方案,但是一般来说的大体的解决方案是自己通过编写一段代码或者通过配置tomcat的filter,将产生的session放到同一个内存数据库中,事实上这确实可行的,只不过我比较懒,我总是觉得这种问题应该有更省事更成熟的解决方案,那确实是有的,也就是我马上介绍的 Memcached_Session_Manager,简称msm,这就是一个用于解决分布式tomcat环境下session共享的问题的开源解决方案。
支持Tomcat6、Tomcat7
支持黏性、非黏性Session
无单一故障点
可处理tomcat故障转移
可处理memcached故障转移
插件式session序列化
允许异步保存session,以提升响应速度
只有当session有修改时,才会将session写回memcached
JMX管理&监控