memcached 以及 session-server部署

memcached以及session-server

準備環境

準備兩臺能響應動態資源的服務器(本試驗使用tomcat7.XX版本)以及一臺nginx調度服務器

安裝memcached

yum install memcached
  • memcached配置介紹:

    1. 由CentOS 7 base倉庫直接提供

    2. 監聽的端口:11211/tcp, 11211/udp

    3. 主程序:/usr/bin/memcached

配置文件:/etc/sysconfig/memcached

Unit File:memcached.service

  1. 協議格式: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目錄中

  • 其中的versiontc {6,7,8}要換成與tomcat版本相同的版本號。

    memcached-session-manager-${version}.jar

    memcached-session-manager-tc6,7,8 {version}.jar

    spymemcached-${version}.jar

    msm-javolution-serializer-${version}.jar

    javolution-${version}.jar

分別在兩臺tomcat服務主機上準備所需依賴文件

訪問 http://repo1.maven.org/maven2/de/javakaffee 站點下載所需的 “.jar” 文件

  1. 因爲使用的是memcached,首先需要下載 spymemcached-2.11.1.jar 文件

  2. 下msm主程序文件 :memcached-session-manager-1.8.3.jar文件

訪問http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager

  1. 下載msm主程序文件:memcached-session-manager-tc7-1.8.3.jar

訪問 http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc7

  1. 下載序列化工具文件: 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一致。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章