Apache+Tomcat实现负载均衡及集群(session同步)--五、session同步(3)使用memcache
程序员文章站
2022-05-23 08:51:21
...
首先,在192.168.137.211服务器上安装memcached服务。下载memcache安装包,memcached-1.4.22.tar.gz,安装也简单,就是解压缩后编译,make在make install
启动memcache服务
Apache配置不变,主要是配置tomcat的context.xml
修改tomcat的conf/context.xml,加入如下配置:
<Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.168.137.16:11211" sticky="false" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$" sessionBackupAsync="false" sessionBackupTimeout="1800000" copyCollectionsForSerialization="false" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/> </Context>
className
|
session管理器类名
|
memcachedNodes
|
配置运行的 memcached节点或者membas bucket的uri地址,格式为<id>:<host>:<port>, 多个节点使用空格或者逗号分隔,如:memcachedNodes="n1:app01:11211,n2:app02:11211",如果只 有单个的memcached节点,则<id>可选
|
sticky
|
配置会话为粘性或非粘性,默认true,tomcat集群时设置为false
|
requestUriIgnorePattern
|
不能修改备份Session的请求的正则表达式。如果像css,javascript,图片等静态文件被同一个Tomcat和同一个应用 上下文来提供,这些请求也会通过memcached-session-manager。这些请求在一个http会话中几乎不会改变,没必要 触发Session备份
|
sessionBackupAsync
|
指定session是否以异步方式备份,如果被设置为true,backupThreadCount设置起作用,如果设置false,通过sessionBackupTimeout设置的过期时间起作用
|
sessionBackupTimeout
|
设置备份Session所用的时间,如果超时则保存失败。此属性只在sessionBackupAsync="false"是起作用。默认100毫秒
|
copyCollectionsForSerialization
|
默认false
|
transcoderFactoryClass
|
创建序列化和反序列化保存到Memcached中的Session的编码转换器的工厂类名
|
启动tomcat,启动的过程中可能会报错,比如:
java.lang.AbstractMethodError,以及xxx class not found之类的,主要是需要的jar包不全,或者jar包太新,一些类被删除了,配置过程中需要的jar包如下
测试同之前内存复制,不在赘述。
上一篇: Ubuntu下编译magent