欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Tomcat實(shí)現(xiàn)session共享(session 會(huì)話復(fù)制)

 更新時(shí)間:2017年09月26日 17:53:44   投稿:mdxy-dxy  
這篇文章主要介紹了Tomcat實(shí)現(xiàn)session共享,其實(shí)就是session 會(huì)話復(fù)制的相關(guān)方法,需要的朋友可以參考下

一、如何保持session會(huì)話

目前,為了使web能適應(yīng)大規(guī)模的訪問(wèn),需要實(shí)現(xiàn)應(yīng)用的集群部署。集群最有效的方案就是負(fù)載均衡,而實(shí)現(xiàn)負(fù)載均衡用戶每一個(gè)請(qǐng)求都有可能被分配到不固定的服務(wù)器上,這樣我們首先要解決session的統(tǒng)一來(lái)保證無(wú)論用戶的請(qǐng)求被轉(zhuǎn)發(fā)到哪個(gè)服務(wù)器上都能保證用戶的正常使用,即需要實(shí)現(xiàn)session的共享機(jī)制。

在集群系統(tǒng)下實(shí)現(xiàn)session統(tǒng)一的有如下幾種方案:

1、請(qǐng)求精確定位:session sticky,例如基于訪問(wèn)ip的hash策略,即當(dāng)前用戶的請(qǐng)求都集中定位到一臺(tái)服務(wù)器中,這樣單臺(tái)服務(wù)器保存了用戶的session登錄信息,如果宕機(jī),則等同于單點(diǎn)部署,會(huì)丟失,會(huì)話不復(fù)制。

2、session復(fù)制共享:session replication,如tomcat自帶session共享,主要是指集群環(huán)境下,多臺(tái)應(yīng)用服務(wù)器之間同步session,使session保持一致,對(duì)外透明。 如果其中一臺(tái)服務(wù)器發(fā)生故障,根據(jù)負(fù)載均衡的原理,調(diào)度器會(huì)遍歷尋找可用節(jié)點(diǎn),分發(fā)請(qǐng)求,由于session已同步,故能保證用戶的session信息不會(huì)丟失,會(huì)話復(fù)制,。

此方案的不足之處:

必須在同一種中間件之間完成(如:tomcat-tomcat之間).

session復(fù)制帶來(lái)的性能損失會(huì)快速增加.特別是當(dāng)session中保存了較大的對(duì)象,而且對(duì)象變化較快時(shí), 性能下降更加顯著,會(huì)消耗系統(tǒng)性能。這種特性使得web應(yīng)用的水平擴(kuò)展受到了限制。

Session內(nèi)容通過(guò)廣播同步給成員,會(huì)造成網(wǎng)絡(luò)流量瓶頸,即便是內(nèi)網(wǎng)瓶頸。

在大并發(fā)下表現(xiàn)并不好

3、基于cache DB緩存的session共享

基于 memcache/redis緩存的 session 共享

即使用cacheDB存取session信息,應(yīng)用服務(wù)器接受新請(qǐng)求將session信息保存在cache DB中,當(dāng)應(yīng)用服務(wù)器發(fā)生故障時(shí),調(diào)度器會(huì)遍歷尋找可用節(jié)點(diǎn),分發(fā)請(qǐng)求,當(dāng)應(yīng)用服務(wù)器發(fā)現(xiàn)session不在本機(jī)內(nèi)存時(shí),則去cacheDB中查找,如果找到則復(fù)制到本機(jī),這樣實(shí)現(xiàn)session共享和高可用。

二、本配置基于tomcat7環(huán)境,通過(guò)tomcat集群自帶的session復(fù)制,session信息將會(huì)被自動(dòng)復(fù)制到各個(gè)節(jié)點(diǎn)。

案例環(huán)境:

主機(jī)

操作系統(tǒng)

IP地址

主要軟件

Tomcat-1

Centos6.5 x86_64

192.168.10.20

jdk-7u65-linux-x64.gz

apache-tomcat-7.0.54.tar.gz

Tomcat-2

Centos6.5 x86_64

192.168.10.21

實(shí)驗(yàn)拓?fù)洌?/p>

wKioL1jWTbqiuzz_AAB2HLda_1k382.png

2、在tomcat-1和tomcat-2節(jié)點(diǎn)上安裝JDK

在安裝tomcat之前必須先安裝JDK,JDK的全稱是java  development kit,是sun公司免費(fèi)提供的java語(yǔ)言的軟件開(kāi)發(fā)工具包,其中包含java虛擬機(jī)(JVM),編寫(xiě)好的java源程序經(jīng)過(guò)編譯可形成java字節(jié)碼,只要安裝了JDK,就可以利用JVM解釋這些字節(jié)碼文件,從而保證了java的跨平臺(tái)性

安裝JDK,配置java環(huán)境:

將jdk-7u65-linux-x64.gz解壓

wKiom1jWTrmxfE6fAAAJOQuWuSA465.png

將解壓的jdk1.7.0_65目錄移致動(dòng)到/usr/local/下并重命名為java

wKioL1jWTrjQEDKfAAAKZPOLu14815.png

在/etc/profile文件中添加內(nèi)容如下:

wKioL1jWTrmz1CKlAAASPri1gvk405.png

通過(guò)source命令執(zhí)行profile文件,使其生效。

wKiom1jWUZTSrZiJAAAHDJ3U4GA501.png

分別在在tomcat-1和tomcat-2節(jié)點(diǎn)運(yùn)行java  -version命令查看java版本是否和之前安裝的一致。

wKiom1jWUZSgf9MTAAAlEi7yNQs644.png

至此java環(huán)境已經(jīng)配置完成

3、在tomcat-1和tomcat-2節(jié)點(diǎn)安裝配置tomcat

解壓apache-tomcat-7.0.54.tar.gz包

wKioL1jWUZTSJ-MzAAAKAeYB73M592.png

將解壓生成的文件夾移動(dòng)到/usr/local/下,并改名為tomcat7

wKiom1jWUZWip9arAAAKpyOZkOc861.png

配置tomcat環(huán)境變量

/etc/profile文件內(nèi)容如下:

wKioL1jWUZaTOO4qAAAZ-boGJZU646.png

通過(guò)source命令執(zhí)行profile文件,使其生效。

wKiom1jWUZeQcAD4AACegrX-His128.png

啟動(dòng)tomcat

wKiom1jWUZfDkOUKAABSCHQNkvM368.png

Tomcat默認(rèn)運(yùn)行在8080端口,運(yùn)行netstat命令查看8080端口監(jiān)聽(tīng)的信息

wKioL1jWUZeDGmdYAAAzdRXwDe4312.png

打開(kāi)瀏覽器分別對(duì)tomcat-1和tomcat-2訪問(wèn)測(cè)試

wKioL1jWUZjRLHUBAAIkPk9MpV8561.png


如果想關(guān)閉tomcat則運(yùn)行/usr/local/tomcat7/bin/shutdown.sh命令

好了,大家可以看到訪成功。說(shuō)明我們的tomcat安裝完成,下面我們來(lái)配置一下

4、修改配置文件

# vim /usr/local/tomcat7/conf/server.xml

設(shè)置默認(rèn)主機(jī),并增加jvmRoute

wKiom1jWU76BEyNsAAAOabIeio0964.png

定義一個(gè)虛擬主機(jī),并將網(wǎng)站文件路徑指向/web/webapp1,在host段增加context段

wKioL1jWU77hFc1OAAAa_QOljAA538.png

增加文檔目錄與測(cè)試文件

wKioL1jWU77CLju1AAAhN3NbdxY261.png

index.jsp內(nèi)容如下:

wKiom1jWU7_CcY1RAABataMmeqQ362.png

停止tomcat運(yùn)行,檢查配置文件并啟動(dòng)tomcat

wKiom1jWU7_BPjeQAACbLQTrp2o361.png

wKioL1jWU8DxeP9YAAC887PJTJ4067.png

wKioL1jWU8DCv8YtAABJ-A7e3EQ316.png

Tomcat-2節(jié)點(diǎn)與tomcat-1節(jié)點(diǎn)配置基本類似,只是jvmRoute不同,另外為了區(qū)分由哪個(gè)節(jié)點(diǎn)提供訪問(wèn),測(cè)試頁(yè)標(biāo)題也不同。其他的配置都相同。過(guò)程略

再次測(cè)試訪問(wèn)一下

wKiom1jWU8HgvwkSAAAwJ3clvss773.png

wKioL1jWU8GjI3KGAAAvcVgEk8E170.png

可以看到session會(huì)話不同

好了,到這里我們準(zhǔn)備工作就全部完成了,下面我們來(lái)配置tomcat的負(fù)載均衡,通過(guò)session復(fù)制實(shí)現(xiàn)會(huì)話保持。

5、配置會(huì)話共享集群,分別在tomcat-1和tomcat-2完成下面的操作。

配置server.xml文件

wKiom1jWU8HBpn1zAAAKYIIqQKc338.png

在Server.xml中,找到被注釋<Cluster/>節(jié)點(diǎn),在下面添加如下內(nèi)容:

wKiom1jWVWfSsFaOAADMlFy3eJc682.png

wKioL1jWVWfBsodNAACf0ddDPg4315.png

修改應(yīng)用的web.xml文件,加入標(biāo)簽  <distributable/> ,如下所示:

wKiom1jWVWfR7HLSAABAzIZgHQI124.png

添加標(biāo)簽<distributable/>

wKioL1jWVWjCYUiaAAAstlEd9zY042.png

直接加在</web-app> 之前就可以了這個(gè)是加入tomcat的session 復(fù)制的,做tomcat集群必須需要這一步,否則用戶的session 就無(wú)法正常使用。

注意:以上內(nèi)容可以參考clustering/session replicationhow-to,如下圖所示:

wKiom1jWVWjTVIxzAAGHi7BI300973.png

注意:tomcat主機(jī)必須要指向正確的網(wǎng)關(guān),否則tomcat會(huì)啟動(dòng)失敗,報(bào)如下錯(cuò)誤

wKioL1jWVWnShk9TAAApIW1glYA741.png

重啟tomcat服務(wù)并查看端口的監(jiān)聽(tīng)狀態(tài)。

wKiom1jWWQ_y2LruAACbLQTrp2o416.png

wKioL1jWWQ-ibMDuAABSMONVJH8718.png

Tomcat-2節(jié)點(diǎn)與tomcat-1配置類似,只是address要寫(xiě)成tomcat-2的ip。

查看tomcat日志:/usr/local/tomcat7/logs/catalina.yyyy-mm-dd.log

wKiom1jWWRDz5hF8AADMz7cZdhs399.png

6、nginx服務(wù)器配置

用nginx實(shí)現(xiàn)tomcat的負(fù)載均衡

關(guān)閉防火墻

安裝相關(guān)軟件包:#yum –y  install pcre-devel zlib-devel

解壓并安裝nginx

wKioL1jWWRCy5VsgAAA1NqqSZoA912.png

修改nginx.conf文件

wKioL1jWWRCCgcWAAAAImMX0YDs106.png

修改內(nèi)容如下:

wKiom1jWWRHif5iHAABEqMbKJVE842.png

啟動(dòng)nginx服務(wù)

wKiom1jWWRGT0alGAAA8aIYteiI214.png

7、下面開(kāi)始測(cè)試

在客戶端使用瀏覽器訪問(wèn)nginx的地址

wKioL1jWWRGTF9a5AAAvDi1koB4773.png

刷新頁(yè)面

wKiom1jWWRLz0mZ_AAAvEAgflnQ605.png

大家可以從圖中看到,不管你怎么刷新SessionID都不會(huì)變,說(shuō)明我們的Tomcat的DeltaManager集群配置完成,實(shí)現(xiàn)了多臺(tái)主機(jī)之間會(huì)話共享

8、tomcat連接mysql數(shù)據(jù)庫(kù)

192.168.10.22作為mysql數(shù)據(jù)庫(kù)服務(wù)器

配置mysql

wKioL1jWWRLjArcLAABktVvWdZ0394.png

插入些數(shù)據(jù)

wKioL1jWXAbAYa5_AAA21-JRqCk522.png

下載mysql-connector-java-5.1.22-bin.jar并復(fù)制到$CATALINA_HOME/lib目錄下

wKiom1jWXAaiW6HLAAAxxQuP5bg915.png

context configuration

configure the JNDI datasource in tomcat by adding a declaration for your resource to your context

wKiom1jWXAeRyZVQAAAKDQwYvsQ435.png

wKioL1jWXAfjVJAYAAA954lKD_0500.png

保存修改并退出

web.xml configuration

wKiom1jWXAeg0pY-AAAK2Ii6gJk491.png

wKioL1jWXAjB20q-AABQ4EYzEGk063.png

保存修改并退出,重啟tomcat服務(wù)

wKiom1jWXAiB3sdPAACbLQTrp2o432.png

Test code

Now create a simple test.jsp page,內(nèi)容如下:

wKioL1jWXAnhQSD7AAAIBuqGCYk931.png

wKiom1jWXAnRHuSVAACqhNci2wo502.png

測(cè)試訪問(wèn)

wKioL1jWXAmzUUurAAAhPWT44Tw375.png

看到上面的結(jié)果說(shuō)明訪問(wèn)成功

 

注:

以上配置可以參考tomcat docs

wKioL1jWXGfSU7z_AAFR1MynYBw187.png

wKiom1jWXGfDPZAsAAEW2r7_6wE878.png

wKiom1jWXGjSQOUJAAD-WhmUX9Y669.png


相關(guān)文章

最新評(píng)論