Tomcat Session独立服务器之Memcached与Redis

一、解决方案三: Session独立服务器之Memcached

如果之前做过session复制,先把之前做的步骤还原

[root@node1 ~]# vim /usr/local/tomcat8/conf/server.xml
[root@node1 ~]# vim /usr/local/tomcat8/webapps/ROOT/WEB-INF/web.xml
[root@node1 ~]# /usr/local/tomcat8/bin/shutdown.sh &&/usr/local/tomcat8/bin/startup.sh

恢复到默认的轮询状态

112和113既是Tomcat也是Memcached

1、两台Tomcat上装上Memcached(内存型的缓存服务,运行和数据的存储在内存上操作)

[root@node1 ~]# yum -y install libevent memcached

[root@node1 ~]# memcached -u root -m 512M -n 10 -f 2 -d -vvv -c 512

选项: 
-h     #查看帮助信息

-p      指定memcached监听的端口号默认11211

-u    #memcached程序运行时使用的用户身份必须是root用户

-l     #memcached服务器的ip地址

-m    #指定使用本机的多少物理内存存数据默认64M

-c     #memcached服务的最大链接数

-vvv  #显示详细信息

-n     #chunk size的最小空间是多少单位字节

-f       #chunk size大小增长的倍数默认1.25倍

-d     #在后台启动

 [root@node1 ~]# netstat -lnpt | grep :11211

2、测试memcached能否存储数据

[root@node1 ~]# yum -y install telnet

[root@node1 ~]# telnet 192.168.200.112 11211

set username 0 0 8

zhangsan

get username

quit

3、最后执行让tomcat-1和tomcat-2通过(msm)连接到memcached,将session包中的“.jar复制到/usr/local/tomcat/lib/下面”

先在112和113上创建一个session的文件,把一些.jar的包传上去

[root@node1 ~]# mkdir session
[root@node1 ~]# cd session/

 [root@node1 ~]# cp session/*.jar /usr/local/tomcat8/lib/

4、编辑tomcat配置文件连接指定的memcached服务器,两台tomcat配置一样

[root@node1 ~]# vim /usr/local/tomcat8/conf/context.xml       // 添加以下内容

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="memA:192.168.200.112:11211 memB:192.168.200.113:11211"
requestUrilgnorePattern=".*(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>

 [root@node2 ~]# /usr/local/tomcat8/bin/shutdown.sh &&  /usr/local/tomcat8/bin/startup.sh 

去网页上测试,session ID和mem不会变,ip会变。

二、解决方案四: Session独立服务器之Redis

把之前做的步骤还原

[root@node2 ~]# killall -9 memcached
[root@node2 ~]# vim /usr/local/tomcat8/conf/context.xml

[root@node2 ~]# ls session/ | while read line; do rm -rf /usr/local/tomcat8/lib/$line; done

[root@node2 ~]# /usr/local/tomcat8/bin/shutdown.sh &&  /usr/local/tomcat8/bin/stah 

Redis与Memcached的区别
●内存利用率:使用简单的keyvalue (键值对)存储的话,Memcached 的内存利用率更高,而如果Redis采用hash结构来做key value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
●性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis 在存储小数据时比Memcached 性能更高。而在100k以上的数据 中,Memcached性能要高于Redis, 虽然Redis 最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
●Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
●Redis支持数据的备份,即master slave模式的数据备份。
●Redis不仅仅支持简单的key Value类型的数据,同时还提供ist, set, zset, hash 等数据结构的存储。

只在一台tomcat上操作:
1、安装部署redis

把redis-4.0.9.tar.gz  rz进来

[root@node1 ~]# tar xf redis-4.0.9.tar.gz -C /usr/src/
[root@node1 ~]# cd /usr/src/redis-4.0.9/
[root@node1 redis-4.0.9]# make

[root@node1 redis-4.0.9]# mkdir -p /usr/local/redis/{bin,etc,var}

[root@node1 src]# cp redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server /usr/local/redis/bin/

src目录下这些文件作用如下
redis-server: Redis 服务器的daemon启动程序。
redis-cli:  Redis命令行操作工具.你也可以用telnet根据其纯文本协议来操作。
redis-benchmark: Redis 性能测试工具,测试Redis在你的系统及你的配置下的读写性能。

redis-stat Redis: 状态检测工具,可以检测Redis当前状态参数及延迟状况。

[root@node1 src]# cd /usr/src/redis-4.0.9/

[root@node1 redis-4.0.9]# cp redis.conf /usr/local/redis/etc/
[root@node1 redis-4.0.9]# vim /usr/local/redis/etc/redis.conf            // 修改内容

bind 0.0.0.0

daemonize yes

[root@node1 redis-4.0.9]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redisconf        //启动

接下来在两台Tomcat虚拟机上操作:

[root@node1 ~]# mkdir redis-session
[root@node1 ~]# cd redis-session/

把redis下的那些包rz进来

[root@node1 redis-session]# cp *.jar /usr/local/tomcat8/lib/

[root@node1 redis-session]# vim /usr/local/tomcat8/conf/context.xml            //添加以下内容

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="192.168.200.114"
port="6379"
database="0"
maxInactiveInterval="60" />

[root@node1 redis-session]# /usr/local/tomcat8/bin/shutdown.sh && /usr/local/tomcat8/bin/startup.sh

去网页上进行测试,还是IP 在变,其他不变。

 

 

原文地址:https://www.cnblogs.com/990624lty-jhc/p/11580693.html