日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

用memcached实现session共享

發(fā)布時間:2023/12/10 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用memcached实现session共享 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

用memcached實現(xiàn)session共享


一、簡介


1)Memcached簡介:

是一種高性能的分布式緩存服務(wù)器;

一般的使用目的是,通過“緩存數(shù)據(jù)” 查詢結(jié)果,減少數(shù)據(jù)訪問次數(shù),以提高動態(tài)web應(yīng)用的速度;

開源且垮平臺的。

memcached支持許多平臺:

Linux

FreeBSD

Solaris

Mac OS X

Windows

特點:通過增長因子解決存儲數(shù)據(jù)的空間浪費問題

只提供存儲數(shù)據(jù)的空間,數(shù)據(jù)存與取由客戶端自己完成

2)什么是session

客戶端從打開瀏覽器到關(guān)閉瀏覽器結(jié)束對網(wǎng)站的訪問的過程就稱為一個session

但http是一個無狀態(tài)的連接協(xié)議

session信息存儲在服務(wù)器端,保存用戶信息,用戶名,密碼等

cookies 信息是服務(wù)器下發(fā)給客戶端的,并保存咋客戶端的一個文件里,保存的內(nèi)容主要包括:、SessionID、賬號名,過期時間,路徑和域


二、案列


?我們構(gòu)建2臺memcached 服務(wù),一臺做主,一臺做從,防止主down掉時,從服務(wù)器可以繼續(xù)工作;(192.168.1.40和192.168.1.50)

? 配置2臺web服務(wù)器,用tomcat做服務(wù),使用java語言測試頁面(192.168.1.20和192.168.1.30)

? 配置一臺nginx代理服務(wù)器(192.168.1.1)


1、memcached服務(wù)器的搭建

1) ?memcached服務(wù)需要用到事件庫,要安裝事件庫libevent

#tar -zxvf libevent-2.0.15-stable.tar.gz

#cd libevent-2.0.15-stable

#./configure

#make && make install

這里用的是源碼包,安裝源碼包的軟件,源碼包安裝四部走,解壓--配置--編譯--安裝!


安裝完成后默認安裝目錄在/usr/local下,我們要把自己安裝的事件庫讓系統(tǒng)識別,用下面命令

#echo '/usr/local/lib'>/etc/ld.so.conf.d/libevent.conf

#ldconf//馬上生效,無需重啟

#ldconf -v |grep --color libevent

//檢查一下配置是否成功

2)安裝memcached

#tar -zxvf memcached-1.4.5.tar.gz

# cd memcached-1.4.5

#./configure

# make

#make install//同樣的源碼包安裝四步

安裝完memcached之后,會在/usr/local下的bin目錄下生成memcached的啟動腳本

#cd ?/usr/local/bin/

memcached的啟動參數(shù):

-h 查看幫助信息

-p ? 指定memcached監(jiān)聽的端口號 ?(默認11211)

-l ? ?memcached服務(wù)器的ip地址 ? ? (默認所有地址)

-u ? memcached程序運行時使用的用戶身份 必須 是root用戶

-m ?指定使用本機的多少物理內(nèi)存 存數(shù)據(jù) ?(默認64M)

-c ? ?memcached服務(wù)的最大鏈接數(shù)

-vvv 顯示詳細信息

-n ? chunk size 的最小空間是多少 單位 字節(jié)

-f ? ?chunk size大小增長的倍數(shù) ?(默認 1.25倍)

-d ? 在后臺啟動


啟動memcached服務(wù):

#usr/local/bin/memcached ? ?-u ?root ?-m 200M ?-c 200 ?-n ?10 ?-f ?2 ?-vvv ?-d


#netstat -utuanlp | grep :11211

//查看一下啟動狀態(tài),默認端口11211

#pkill ?-9 ? memcached ?

//關(guān)閉服務(wù)用殺進程的方式

3)測試memcached


[root@localhost bin]# telnet localhost ?11211

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.//用telnet來測試,11211口

set age 0 ?180 ?2

10

STORED//出現(xiàn)這樣的字樣表示成功

get age

VALUE age 0 2

10

END

quit

Connection closed by foreign host.


參考第一臺memcached服務(wù)器的搭建過程,搭建另外一臺memcached服務(wù)器


2、部署tomcat網(wǎng)站服務(wù)器

1)安裝jdk ?(linux ?<----------> ?jdk ?<-------> ?tomcat)

?jdk= Java Development Kits,Java開發(fā)工具


用jdk-6u27-linux-i586包,實現(xiàn)linux與tomcat的“溝通”

---對應(yīng)的包jdk-6u27-linux-i586.bin (tomcat運行環(huán)境包)


#chmod +x ?jdk-6u27-linux-i586.bin

#./jdk-6u27-linux-i586.bin ? ? //直接運行即可

#mv jdk1.6.0_27 ?/usr/local/jdk

#vim /etc/bashrc//定義環(huán)境變量

export ? ?JRE_HOME=/usr/local/jdk

export ? ?JAVA_BIN=/usr/local/jdk/bin

export ? ?PATH=$JRE_HOME/bin:$PATH

export ? ?CLASSPATH=.:$JRE_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar

export JRE_HOME ? JAVA_BIN ? PATH ? CLASSPATH

[root@www ~]# source ? /etc/bashrc

//初始化環(huán)境變量

驗證jdk:

#java -version

2)安裝tomcat

#tar -zxvf apache-tomcat-6.0.32.tar.gz ?-C /usr/local/

#mv apache-tomcat-6.0.32/ tomcat

目錄:

bin ? 服務(wù)啟動腳本

lib ? ? ?庫文件

logs ? ?日志文件

Work模塊配置文件目錄

conf ?tomcat配置文件目錄

webapps/ROOT ? ? ? 網(wǎng)頁目錄


啟動tomcat

#cd /usr/local/tomcat/bin/

[root@www bin]# ./startup.sh ? ? 啟動服務(wù) 腳本

#netstat -unalp | grep :8080 ?(tomcat 默認監(jiān)聽8080端口)


[root@www bin]# ./shutdown.sh ?停止服務(wù)腳本

客戶端訪問

http://server_ip:8080


3)配置tomcat支持memcached

讓客戶端把session_id 保存到memcached服務(wù)上。

在tomcat上部署msm

安裝 連接memcached服務(wù)器的連接工具 ?(msm組件)

? 安裝完之后cd到session目錄下

#cd ?session

#cp ?*.jar ? /usr/local/tomcat/lib/

? ? ? ? ?//把所有以jar結(jié)尾的拷貝到tomcat的lib目錄下

編輯tomcat的配置文件,設(shè)置主從memcached服務(wù)器

#cd /usr/local/tomcat/conf/

#vim ? ?context.xml


<context>


? ? ? <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" ? memcachedNodes="memA:192.168.1.40:11211,memB:192.168.1.50:11211" ? failoverNodes="memB" ?REQUESTuRILGNOREpATTERN=".*\(ico|png|gif|jpg|css\)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

/>


</context>

以同樣的方式,部署另外一臺tomcat服務(wù)器;并且分別創(chuàng)建一個java測試頁,分別調(diào)用各自的sessionID的值,以作后面的檢測用,使效果更明顯


test.jsp

<html>

? ? ? ?<body bgcolor="green"> ?

? ? ? ? ? ?<center>

? ? ? ? ? ? ? ?<%= ?request.getSession().getId() ?%>

? ? ? ? ? ? ? ?<h1>192.168.1.101</h1>

? ? ? ? ? ?</center>

? ? ? ?</body>

</html>


可以在另外一臺tomcat服務(wù)器上把測試頁的背景顏色bgcolor="green"改一下,測試效果明顯





3)配置nginx反向代理:

把用戶訪問網(wǎng)站的請求以輪詢的方式分發(fā)給后端的2臺tomcat服務(wù)器。


#vim /usr/local/ngix/conf/nginx.conf


upstream sergrp{//定義源服務(wù)器組,名字可自由發(fā)揮

server 192.168.1.30:8080;

server 192.168.1.20:8080;



}

? ? ? ?http{

server {

server_name www.tarena.com;

location / {

... ...

proxy_pass http://sergrp;//調(diào)用前面定義的服務(wù)組

}

? }

}

4)測試

在客戶端瀏覽器上輸入代理服務(wù)器的ip地址,之后顯示后端的tomcat服務(wù)器的頁面,接著刷新一下,顯示的是另外一個后端tomcat服務(wù)器的頁面,兩張頁面的sessionID的值是相同的,代表部署成功!





思路:

1、nginx 反向代理 ((把用戶房費自己請求,分發(fā)給后臺的2臺tomcat服務(wù)器)


端口8080 ?




2、配置tomcat服務(wù)器:

192.168.1.30:8080;

192.168.1.20:8080;


3、部署2臺memcached服務(wù)


4、讓tomcat把sessionID存放到memcached里


沒配置之前,測試會發(fā)現(xiàn)session在變 服務(wù)器也在變


配置:

安裝連接工具,編寫配置文件,連接memcached服務(wù)器


context.xm(msm組件)


<context>

<manager ....

</context>



此時再測試,會發(fā)現(xiàn)session不變,服務(wù)器在變


轉(zhuǎn)載于:https://blog.51cto.com/xujpxm/1393084

總結(jié)

以上是生活随笔為你收集整理的用memcached实现session共享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。