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}.jarspymemcached-${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一致。