memcached以及session-server
准备环境
准备两台能响应动态资源的服务器(本试验使用tomcat7.XX版本)以及一台nginx调度服务器
安装memcached
yum install memcached
memcached配置介绍:
由CentOS 7 base仓库直接提供
监听的端口:11211/tcp, 11211/udp
主程序:/usr/bin/memcached
配置文件:/etc/sysconfig/memcached
Unit File:memcached.service
- 协议格式:memcached协议
文本格式和二进制格式
使用 memcached 配置 session-server (序列化工具选用 javolution )
memcached-session-manager项目地址
http://code.google.com/p/memcached-session-manager
https://github.com/magro/memcached-session-manager
下载如下jar文件至各tomcat节点的tomcat安装目录下的lib目录中
其中的 version要换成你所需要的版本号,tc {6,7,8}要换成与tomcat版本相同的版本号。
memcached-session-manager-${version}.jar
memcached-session-manager-tc 6,7,8− {version}.jar
spymemcached-${version}.jar
msm-javolution-serializer-${version}.jar
javolution-${version}.jar
分别在两台tomcat服务主机上准备所需依赖文件
访问 http://repo1.maven.org/maven2/de/javakaffee 站点下载所需的 “.jar” 文件
因为使用的是memcached,首先需要下载 spymemcached-2.11.1.jar 文件
下msm主程序文件 :memcached-session-manager-1.8.3.jar文件
访问http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager
- 下载msm主程序文件:memcached-session-manager-tc7-1.8.3.jar
访问 http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc7
- 下载序列化工具文件: msm-javolution-serializer-1.8.3.jar 和 javolution-5.4.3.1.jar
或者访问http://repo1.maven.org/maven2/de/javakaffee/msm/msm-javolution-serializer
将下载好的文件放置在memcached的类文件目录下
如果tomcat是使用yum安装的,则类文件存放目录为 /usr/share/java/tomcat ,如果是用二进制标准压缩包安装的tomcat,其类文件在解压后的程序包的 lib 目录下。
配置tomcat主配置文件,两台tomcat服务器配置内容类似
#配置test应用
mkdir -pv /usr/share/tomcat/webapps/test/{WEB-INF,META-INF,lib,classes}
vim /usr/share/tomcat/webapps/test/
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
<head><title>Tomcat A</title></head>
<body>
<h1><font color="red">Tomcat Server A</font></h1>
<table align="centre" border="1">
<tr>
<td>Session ID</td>
<% session.setAttribute("achudk.com","achudk.com"); %>
<td><%= session.getId() %></td>
</tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
<br>
<% out.println("hello tc1");
%>
</body>
</html>
#修改tomcat主配置文件
vim /etc/tomcat/server.xml
#在<Host>配置段下增加一个Context段,如下:
<Context path="/test" docBase="test" reloadable="true">
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="m1:172.16.50.11:11211,m2:172.16.50.12:11211"
failoverNodes="m2"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.Javolution.JavolutionTranscoderFactory"
/>
</Context>
- 启动tomct服务,测试tomcat的test应用是否能够正常提供服务
#查看当前tomcat程序的类文件目录
rpm -ql tomcat-lib
#类文件目录为 /usr/share/java/tomcat 目录
cd /usr/share/java/tomcat
#将下载好的 ".jar" 文件放置在此位置
mv memcached-session-manager-1.8.3.jar memcached-session-manager-tc7-1.8.3.jar msm-javolution-serializer-1.8.3.jar spymemcached-2.11.1.jar jjavolution-5.4.3.1.jar /usr/share/java/tomcat
配置nginx调度器
vim /etc/nginx/conf.d/proxy_tomcat.conf
#内容如下
upstream tcsrvs {
server 172.16.50.11:8080;
server 172.16.50.12:8080;
}
server {
listen 80;
server_name 172.16.50.7;
location / {
proxy_pass http://tcsrvs;
}
}
启动nginx服务、启动memcached服务 并重启tomcat服务,验证效果。
访问http://172.16.50.7:8080/test/,结果为
#
Tomcat Server A
Session ID 67FB8590C1DC933795BF7FD999CF106E-n1
Created on 1500705152610
hello tc1
#
Tomcat Server B
Session ID 67FB8590C1DC933795BF7FD999CF106E-n1
Created on 1500705152610
hello tc2
- 验证结果:调度到两台tomcat服务器,会话ID一致。