Session Cache Server 及Tomcat集群架构之二:用Memcached 实现简单Session Cache Server
用Memcached 实现简单Session Cache Server
前面写了“Session Cache Server 及Tomcat集群架构概念”,这次简单实现了单个Session Cache Server,发布出来供大家参考学习,希望能抛砖引玉。
这个实现参考了javaeye 网友codeutil的文章和代码:http://www.javaeye.com/topic/81641
我的实现是重写了StandardManager和StandardSession。
StandardManager实现session的查找和更新。
StandardSession中实现将所有的session数据全部储存在memcached上,tomcat不储存session数据,基本储存结构如下:
数据类型 |
Key |
Value |
Session |
SESSION_IDS |
Set,储存所有的Session ID |
Session ID |
Session id |
Set,储存所有该session相关的数据项Key |
Session Data |
Data [email protected]+session id |
Key 对应的自定义数据,必须实现Serializable接口 |
注意:本代码只是用来测试学习,并非完整可靠的实现,切勿用于正式生产系统。
附件测试的使用
下载附件,解压后,如下图:
其所有配置都已经配置好,运行批处理即可测试。
Start.bat 为所有的启动批处理
Stop.bat 为所有的关闭批处理
Scs.jar包括了实现的源代码和配置文件。
启动后用http://localhost:81/scs/jsp3.jsp访问
注意:为防止端口冲突,Nginx服务端口修改成了81,Tomcat 1和2的端口分别是:8480/8580,8405/8505,8409/8509。
Tomcat的配置是在conf/context.xml中添加Manager节点,配置自己实现的Manager类:
下面是运行中的一些截图,供参考:
刷新后: