tomcat结合memcached构建session服务器
memcached服务器两台:192.168.223.136,192.168.223.137
tomcat多实例:192.168.233.146:8081,192.168.223.146:8082
for tomcat configure(这里使用的tomcat8的版本)
参考:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
Add memcached-session-manager jars to tomcat
wget http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/2.1.1/memcached-session-manager-2.1.1.jar
wget http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc8/2.1.1/memcached-session-manager-tc8-2.1.1.jar
wget http://repo1.maven.org/maven2/net/spy/spymemcached/2.11.1/spymemcached-2.11.1.jar
下载需要的memcached的三个jar文件
将这三个jar文件复制到$CATALINA_HOME/lib/目录下
由于采用的多实例
export CATALINA_HOME=/usr/local/apache-tomcat-8.5.16
export CATALINA_BASE=/usr/local/tomcat-instance/tomcat1
如果仅仅只是用java来做序列化器只需要这三个包就ok
配置tomcat多实例:
tomcat1的添加配置如下:
<Context path="" docBase="ROOT" reloadable="true">
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.223.136:11211,n2:192.168.223.137:11211" 这里的ip就是memcached服务器的两个ip
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
/>
</Context>
将红色添加的部分放进各应用程序的context组件内
tomcat2的添加配置和tomcat1一样:
<Context path="" docBase="ROOT" reloadable="true">
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.223.136:11211,n2:192.168.223.137:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
/>
</Context>
开启各自的tomcat的服务
接下来配置memcached服务器,这里采用的yum安装:
yum install memcached -y(两台服务器192.168.223.136,192.168.223.137分别都给装上)
访问中可以看见session会话保持已经成功,查看memcached缓存信息:
[root@wadeson ~]# memcached-tool 127.0.0.1
# Item_Size Max_age Pages Count Full? Evicted Evict_Time OOM
6 304B 553s 1 2 no 0 0 0
然后只需要配置前端代理到tomcat即可实现负载均衡
另补充:
如果需要采用其他的序列进行session保持:
1、Example for sticky sessions + kryo(需要的包
- kryo-serializer: msm-kryo-serializer, kryo-serializers-0.34+, kryo-3.x, minlog, reflectasm, asm-5.x, objenesis-2.x
)
<Context>
...
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context> 2、javolution-serializer: msm-javolution-serializer, javolution-5.4.3.<Context>
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.1.155:11211,n2:192.168.1.11:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.javolutionTranscoderFactory" 各个序列器就这里做了变化 />
</Context>
3、If you're using Redis, you need the jedis-2.9.0.jar.
更多详情参考:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
tomcat结合memcached构建session服务器的更多相关文章
- Tomcat通过Memcached实现session共享的完整部署记录
对于web应用集群的技术实现而言,最大的难点就是:如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点, 大体上有两种方式:一种是把所有Ses ...
- Nginx反代至Tomcat基于memcached的session保持
实现功能:基于前面tomcat基础简介与示例文章 (1) tomcat cluster将会话保存至memcached中:实现模型: 这里写图片描述 配置B,C主机安装openjdk与tomcat[本次 ...
- session服务器Nginx+Tomcat+Memcached集群Session共享
cookie是怎样工作的? 例如,我们创立了一个名字为login的Cookie来包含访问者的信息,创立Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jor ...
- Nginx+Tomcat+Memcached实现tomcat集群和session共享
一.Nginx安装 详见前文:http://www.cnblogs.com/yixiwenwen/p/3574097.html 二.memcached安装和启动 详见前文:http://www.cnb ...
- Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...
- 【转】 Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...
- Tomcat使用Memcached Session Manager管理Session
Tomcat使用Memcached Session Manager管理Session 废话不多说,直接进入主题.项目使用阿里云负载均衡+ECS服务器集群进行部署,Tomcat使用8.5版本.阿里云负载 ...
- 基于Memcached的Nginx服务器集群session共享
原料:jdk1.8,tomcat7,nginx1.16,memcached-1.2.6,Mem-Tomcat需要的jar包,基于windows7.所有的点击以下链接可下载 链接:https://pan ...
- 分布式Session共享(二):tomcat+memcached实现session共享
一.前言 本文主要测试memcached实现session共享的实现方式,不讨论如何让nginx参与实现负载均衡等. 二.环境配置 本测试在Window下进行 name version port To ...
随机推荐
- 如何用原生js替换字符串中的某个字符(或字符串)为指定的字符串?
<html> <head><title>我的第一个 HTML 页面</title></head><script type=" ...
- js/vue 高德地图绘制驾车路线图
地图容器: // css要给此容器设置宽高 <div class="map_container"></div> 画图 data{ return { Clng ...
- 给vmware虚拟机设置Ip,使用xshell远程连接Centos
参考下面两位的分享才弄好,发表之前先对原作者表示感谢! 给Centos配置网络以及使用xshell远程连接Centos http://www.cnblogs.com/fuly550871915/p/4 ...
- JS内存泄漏排查方法-Chrome Profiles
原文链接:http://caibaojian.com/chrome-profiles.html 一.概述 Google Chrome浏览器提供了非常强大的JS调试工具,Heap Profiling便是 ...
- js访问CSS最终计算样式
所谓计算样式,就是嵌入式样式.外部样式表.内联样式综合的样式表现,那么如何来获取呢? "DOM2 级样式"增强了document.defaultView,提供了getCompute ...
- spring-boot 打包成 war包发布
1.用maven打包成war包 2.将war包用zip方式打开,删除里面的tomcat-embed相关的4个包,删除spring-boot-tomcat包 3.将删除了tomcat相关嵌入包后的war ...
- iermu爱耳目
百度推出720P 云直播摄像头 查看直播请点击 直播 互联网网盘新动向实现初见端倪,之前写过一篇关于互联网网盘的思考. 我只是仅仅有想法而已,百度已经实现了一部分. 具体功能参见http://www. ...
- Java IO 修改文件名
/** *//**文件重命名 * @param path 文件目录 * @param oldname 原来的文件名 * @param newname 新文件名 */ public void renam ...
- java面试基础题------》Java 中的final关键字有哪些用法
(1)修饰类:表示该类不能被继承: (2)修饰方法:表示方法不能被重写: (3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量).
- java递归构建菜单树
package testSimple; import java.util.ArrayList; import java.util.List; public class BuildTree { publ ...