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