Tomcat基于Memcached Session实现Manager绑定及共享Session

准备环境:
主机1: -----172.18.250.106-----node1.magedu.com-----tomcat1主机
主机2: -----172.18.250.117-----node2.magedu.com-----tomcat2主机
主机3: -----172.18.250.202-----www.magedu.com-----反向代理主机
主机4: -----172.18.250.192-----node3.magedu.com-----memcached1主机
主机5: -----172.18.250.220-----node4.magedu.com-----memcached2主机

  • 关闭所有主机的iptables安全策略及selinux

# iptables -F
# setenforce 0

  • 对每一台主机进行时间同步

# ntpdate 172.18.0.1

  • 修改主机名并同步

tomcat1主机
# hostnamectl set-hostname node1.magedu.com && exec bash
tomcat2主机
# hostnamectl set-hostname node2.magedu.com && exec bash
反向代理主机
# hostnamectl set-hostname www.magedu.com && exec bash
memcached1主机
# hostnamectl set-hostname node3.magedu.com && exec bash
memcached2主机
# hostnamectl set-hostname node4.magedu.com && exec bash

  • 原理简单说明一下,memcached是为了在tomcat无法提供服务是使正在连接的会话不会中断,也就是把tomcat的session会话共享到memcached的主机上,而memcached主机和tomcat主机不是同一台主机,在tomcat主机意外宕机是,自动切换到memcached的主机上而已!
  • 配置tomcat主机1

安装tomcat服务及jdk包文件
# yum install -y java-1.8.0-openjdk-devel
# yum -y install tomcat
# cd /usr/share/tomcat/webapps/
# mkdir -p {myapp,WEB-INF}
# cd myapp/
# vim index.jsp 注:编辑测试页面

Tomcat基于Memcached Session实现Manager绑定及共享Session_第1张图片
image
测试
Tomcat基于Memcached Session实现Manager绑定及共享Session_第2张图片
image

  • 配置tomcat2主机,步骤与tomcat1基本相同,测试页面稍作调整,这里我就不作详细步骤了!只列出测试页面的不同!
Tomcat基于Memcached Session实现Manager绑定及共享Session_第3张图片
image

测试
Tomcat基于Memcached Session实现Manager绑定及共享Session_第4张图片
image
  • 在主机3和主机4上安装memcached并启动,验证启动结果

# yum install -y memcached
# systemctl start memcached
# ss -ntl

Tomcat基于Memcached Session实现Manager绑定及共享Session_第5张图片
image
注:11211端口已经打开,启动成功!

  • 在这里我们需要了解两个概念
    sticky sessions :粘性sessions
    non-sticky sessions:非粘性sessions
    这里我们使用粘性sessions实现会话共享
    为了实现会话共享,我们还需要几个工具包
  • 软件包
    1. javolution-5.4.3.1.jar 注:流式化工具
    2.msm-javolution-serializer-1.8.3.jar注:MSM支持两种模式即粘性sessions和非粘性sessions
    3.memcached-session-manager-1.8.3.jarmemcached会话管理器
    4.memcached-session-manager-tc7-1.8.3.jarmemcached会话管理器
    5.spymemcached-2.11.1.jar驱动:tomcat连接memcached
    所需包文件下载地址https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
    下载包文件至各tomcat节点的tomcat安装目录下的lib目录中
    因为我这里已经把包文件下载好放到ftp服务器上,所以只要从ftp服务器中下载即可

Tomcat基于Memcached Session实现Manager绑定及共享Session_第6张图片
image
把下载好的包文件放到/usr/share/tomcat/lib/下即可
Tomcat基于Memcached Session实现Manager绑定及共享Session_第7张图片
image
然后配置tomcat1的主配置文件
# vim /etc/tomcat/server.xml
Tomcat基于Memcached Session实现Manager绑定及共享Session_第8张图片
image
修改tomcat2的主配置文件
Tomcat基于Memcached Session实现Manager绑定及共享Session_第9张图片
image
重启tomcat服务

  • 最后我们配置反向代理服务器

# yum -y install nginx
# vim /etc/nginx/nginx.conf

Tomcat基于Memcached Session实现Manager绑定及共享Session_第10张图片
image
重启nginx服务
测试调度(默认轮询方式)
Tomcat基于Memcached Session实现Manager绑定及共享Session_第11张图片
image
Tomcat基于Memcached Session实现Manager绑定及共享Session_第12张图片
image
注:可以看出tomcat主机是和轮询方式调度,而会话Session ID保持不变!实现了会话绑定!

你可能感兴趣的:(Tomcat基于Memcached Session实现Manager绑定及共享Session)