安裝兩臺memcache,基于tomcat做會話同步;(只對動態內容緩存,用于追蹤用戶會話)
前提:
兩個tomcat節點:172.16.100.7(tomcatA.magedu.com),172.16.100.8(tomcatB.magedu.com)
兩個memcached節點:172.16.100.9, 172.16.100.10
一個負載均衡節點:172.16.100.6
兩臺安裝完tomcat,再yum安裝memcached即可;下面這個memcached項目就是為了tomcat增加一個新的會話管理器:放在tomcat的lib下即可;注意memcached要和你的tomcat版本一致;
memcached-session-manager項目地址:https://github.com/magro/memcached-session-manager
memcached配置文件:/etc/sysconfig/memcached 建議修改緩存空間大小CACHESIZE,M為單位
教室環境下下載安裝包,lftp 172.18.0.1:/pub/Sources/7.x86_64/msm> mget * 其他環境參考上述GitHub網站下載
現在兩臺tomcat版本都為7,所以刪除掉不需要的memcached依賴包:rm -rf memcached-session-manager-tc8-1.8.3.jar
然后將幾類包放置到tomcat對應的lib相關目錄下:mv *.jar /usr/share/tomcat/lib
隨后修改tomcat配置文件,添加在Host上下文中:
分別在兩個tomcat上的某host上定義一個用于測試的context容器,并在其中創建一個會話管理器,如下所示(修改對應參數,如docBase路徑,n1和n2地址):
<Context path=”/test” docBase=”/usr/share/tomcat/webapps/test” reloadable=”true”>
<Manager className=”de.javakaffee.web.msm.MemcachedBackupSessionManager”
memcachedNodes=”n1:172.16.100.9:11211,n2:172.16.100.10:11211″
failoverNodes=”n1″
requestUriIgnorePattern=”.*\.(ico|png|gif|jpg|css|js)$”
transcoderFactoryClass=”de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory”
/>
</Context>
分別為兩個context提供測試頁面:
tomcatA:
mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}
vim /usr/share/tomcat/webapps/test/index.jsp
<%@ page language=”java” %>
<html>
<head><title>TomcatA</title></head>
<body>
<h1><font color=”red”>TomcatA.magedu.com</font></h1>
<table align=”centre” border=”1″>
<tr>
<td>Session ID</td>
<% session.setAttribute(“magedu.com”,”magedu.com”); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
上述為tomcat1,tomcat2節點和memcached2與上述安裝配置基本一致,就/usr/share/tomcat/webapps/test/index.jsp頁面信息有些改變:
<%@ page language=”java” %>
<html>
<head><title>TomcatB</title></head>
<body>
<h1><font color=”blue”>TomcatB.magedu.com</font></h1>
<table align=”centre” border=”1″>
<tr>
<td>Session ID</td>
<% session.setAttribute(“magedu.com”,”magedu.com”); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
最后在172.16.100.6的nginx上配置反向代理的負載均衡內容即可,測試訪問:
注意會話內容是一致;
原創文章,作者:杜少星,如若轉載,請注明出處:http://www.www58058.com/76838