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