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