這是MemCacheDManager下載,是一款優(yōu)秀的基于.NET平臺的memcached性能監(jiān)視工具。
廢話不多說,直接進入主題。項目使用阿里云負載均衡+ECS服務器集群進行部署,Tomcat使用8.5版本。阿里云負載均衡提供會話保持功能,開啟此功能后,同一IP地址的請求將轉(zhuǎn)發(fā)到同一臺后端ECS服務器處理,每臺ECS中的Tomcat各自管理各自的Session,互不相關。
我們都知道對于一些大型的web2.0的網(wǎng)站,在正式部署時一般是部署在不同故障域的多臺應用服務器上,以j2ee應用為例,一般我們都會部署在tomcat下,假如我們部署了10臺tomcat服務器,那這10臺tomcat可能是部署在不同的機器上,然后將應用程序copy到這10臺tomcat下,然后啟動所有tomcat,一般來說這樣做的目的是為了達到負載均衡以及避免單點故障,另外也考慮到國內(nèi)網(wǎng)絡環(huán)境的原因,避免跨網(wǎng)絡運營商訪問而導致訪問速度低下的問題,當然不要忘了坐鎮(zhèn)這10臺tomcat前端的還有我們的反向代理服務器,比如nginx,這個就是另一個話題了,我今天主要講的是,對于這種分布式tomcat環(huán)境,我們?nèi)绾伪WCsession 的唯一性(我假定你知道session是什么)。這也是在日期公司的一個項目中負責解決的一個問題,當然實際上這并不是什么新的議題,之前就有很多解決方案,但是一般來說的大體的解決方案是自己通過編寫一段代碼或者通過配置tomcat的filter,將產(chǎn)生的session放到同一個內(nèi)存數(shù)據(jù)庫中,事實上這確實可行的,只不過我比較懶,我總是覺得這種問題應該有更省事更成熟的解決方案,那確實是有的,也就是我馬上介紹的 Memcached_Session_Manager,簡稱msm,這就是一個用于解決分布式tomcat環(huán)境下session共享的問題的開源解決方案。
支持Tomcat6、Tomcat7
支持黏性、非黏性Session
無單一故障點
可處理tomcat故障轉(zhuǎn)移
可處理memcached故障轉(zhuǎn)移
插件式session序列化
允許異步保存session,以提升響應速度
只有當session有修改時,才會將session寫回memcached
JMX管理&監(jiān)控