用memcached-session-manager实现Tomcat集群

之前介绍过用Tomcat自身的Cluster做集群。还有一种方式是通过memcached保存session,实现多台tomcat共享session。开源项目memcached-session-manager实现了这个功能。

一、首先需要安装memcached。

安装步骤请参考:http://blog.csdn.net/clarkcc1988/article/details/8509822

上面这篇文章写的很好,在这里就不重复了。

补充几点官方文档中的信息:(官方文档链接:https://code.google.com/p/memcached/wiki/NewStart?tm=6)

  • 启动参数

  -h:获得帮助信息

  注意-m,-d,-v

  -m:告诉memcached用多少内存做存储(单位M)。注意memcached会使用比你设定的数量更多一些的内存,所以要设定安全的数量。在1.4.x版本及以前的版本,不管你设定多少,memcached使用的内存都不会少于48M。

 常用启动命令:/usr/local/memcached/bin/memcached -d -m 256 -u root -p 11211 -c 1024

  • 连接限制:

默认最大连接数是1024。在系统运行时,你可以执行命令echo "stats" | nc localhost 11211

检查"listen_disabled_num",如果数值比0大,加大连接数的设置,让这个数值等于或近似于0即可。

  • 线程

默认是4个线程。memcached每个线程都可以处理大量的请求,所以这个数值不用设置太大。除非你的memcached系统特别健壮,否则不建议增大此数量。线程数量设置大于80时将不会让系统运行更快。

  • 运行中的参数

系统运行时,执行命令:$ echo "stats settings" | nc localhost 11211

可以查看系统运行的状态参数。('stats'和'stats settings')

 二、memcached客户端(选读)

程序通过memcached客户端操作memcached。JAVA客户端有很多,比较好的有spymemcached和xmemcached。xmemcached有完整的中文文档,性能也很不错。

xmemcached中文指南:https://code.google.com/p/xmemcached/wiki/User_Guide_zh

spymemcached:https://code.google.com/p/spymemcached/

三、memcached-seession-manager

上面的文章基本是翻译官方文档,写的很清楚了,不再重复。

官方文档:https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration

需要补充的几点:

1、Context的设置可以是针对单个web应用,也可以针对整个Tomcat环境。配置的地方不同,但是不建议在server.xml中添加,因为这样要应用修改必须重启Tomcat。参考:http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Defining_a_context

2、如果你的tomcat在同一个机器上,需要设置jvmRoute,并且保证在同一台机器上的唯一,如:<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

相关推荐