欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
TOMCAT5 集群中的SESSION復制二
版權聲明:可以任意轉載,轉載時(shí)請務(wù)必以超鏈接形式標明文章原始出處和作者信息及本聲明
作者:
Srini Penchikala;Sunny983
原文地址:http://www.onjava.com/pub/a/onjava/2004/12/15/replication2.html
中文地址:
http://www.matrix.org.cn/resource/article/43/43865_Tomcat_Clustering.html
關(guān)鍵詞: Tomcat Clustering

本文是有關(guān)在TOMCAT5容器中進(jìn)行SESSION復制系列的第2部分。在第一部分中,我對相對sticky的已復制的SESSION以及SESSION復制設計所要注意的一些事項給出了個(gè)概要。我同樣討論了在一個(gè)TOMCAT集群中SESSION復制是怎樣工作的,特別是當服務(wù)器自動(dòng)或關(guān)閉的時(shí)候。在這個(gè)部分,我將會(huì )介紹一個(gè)樣例TOMCAT集群?jiǎn)?dòng)的詳細配置,比較不同的SESSION復制場(chǎng)景以及他們分別對集群性能的影響。


Tomcat 5集群中的SESSION復制 第一部分:http://www.matrix.org.cn/resource/article/43/43865_Tomcat_Clustering.html


集群安裝

為了在TOMCAT5容器中SESSION復制可用,必須完成以下步驟:
●        為了集群能夠工作,你必須使用你系統上的多點(diǎn)傳送可使用
●        為了有些使用SESSION復制,所有TOMCAT例程必須同樣配置。這意味著(zhù)WEB應用程序必須統一的部署在集群中的每臺服務(wù)器上。這些配置同樣簡(jiǎn)化了集群管理,維護和發(fā)現維修故障的任務(wù)。
●        在server.xml未注釋的Cluster 和Valve (ReplicationValve)元素。起用server.xm中的CLUSTER元素意味著(zhù)所有WEB CONTEXT的SESSION管理器將會(huì )改變。因此當運行一個(gè)集群的時(shí)候,你應該確保只有一個(gè)需要被集成WEB應用程序并且移除其他的。
●        如果服務(wù)器例程運行在同樣的機器上,應該確保每個(gè)例程的tcpListenPort屬性是一致的。
●        確保web.xml有distributable屬性
●        所有的SESSION屬性必須實(shí)現java.io.Serializable接口

范例集群安裝有兩個(gè)TOMCAT例程和一個(gè)負載平衡用于分配服務(wù)器間的請求。所有三個(gè)服務(wù)器都運行在一個(gè)單獨的機器上,以下表格列出了集群和負載平衡上的配置參數。


編輯注解:以上Web App Directory中的值為了適應排版而換行了。在你的部署中,每個(gè)值應該是單一而完整的一行

注意:不要設置tcpListenAddress為127.0.0.1,因為127用于回環(huán)地址,在SESSION復制期間可能會(huì )出現問(wèn)題。


負載平衡器安裝

TOMCAT服務(wù)器不提供失效轉移能力用于當一個(gè)集群接點(diǎn)失效的時(shí)候重定向任何引入的請求到下一個(gè)可用的服務(wù)器上。所以我使用一個(gè)分開(kāi)的負載平衡器去管理WEB請求的負載平衡。有一些流行的負載平衡器例如Apache/mod_jk, Balance, 和 Pen。我在范例集群安裝中使用Pen作為負載平衡器。

Pen是一個(gè)簡(jiǎn)單的,基于TCP協(xié)議,例如HTTP或者SMTP的負載平衡器。他允許多個(gè)服務(wù)器對外表現為一個(gè)服務(wù)器,并且自動(dòng)檢測關(guān)閉的服務(wù)器,在可用的服務(wù)器間分配客戶(hù)斷。他提供了負載平衡和失效轉移能力。Pen易于安裝以及配置,非常容易使用和運行在Windows和UNIX操做系統上。范例配置使用round-robin負載平衡算法用于在集群節點(diǎn)間分配負載平衡

運行負載平衡器的命令如下:
pen -r -a -f -d localhost:8080 192.168.0.10:9080 192.168.0.20:10080

以下是用于啟動(dòng)負載平衡器的每個(gè)命令行參數的解釋
-r:  使用round robin負載平衡
-a: 打印來(lái)回發(fā)送的ASCII格式的數據
-f: 保持在前臺
-d: 起用DEBUG模式

想要知道更多用于啟動(dòng)PEN的參數細節,請訪(fǎng)問(wèn)PEN網(wǎng)站
圖表1展示了兩個(gè)集群節點(diǎn),一個(gè)負載平衡器,儀器層,以及測試客戶(hù)端的拓撲圖


Figure 1. Cluster setup diagram

測試安裝

我創(chuàng )建了一個(gè)叫做clusterapp的WEB應用程序來(lái)驗證集群安裝以及SESSION復制原理。為了測試真實(shí)的SESSION復制,我寫(xiě)了一個(gè)叫做SessionReplicationClient的簡(jiǎn)單JAVA客戶(hù)端用語(yǔ)測試從一個(gè)服務(wù)器拷貝SESSION數據到另外一個(gè)服務(wù)器的需要的時(shí)間。這個(gè)客戶(hù)端使用Jakarta Commons HttpClient況架去創(chuàng )建和操作HTTPSESSION并且調用TOMCAT服務(wù)器上的一個(gè)SERVLET。用于測試SESSION復制的機器軟硬件配置如下:
●        CPU: HP Pavilion Pentium III 800MHz
●        Memory: 512MB RAM
●        Hard disk: 40GB
●        Operating system: Windows 2000 server
●        JDK version: 1.4.2_05 (Note: JDK 1.4 or later version is required to use clustering and session replication)
●        Tomcat version: 5.0.28
●        Tools: Pen, Log4J, Eclipse, Commons HttpClient

當一個(gè)復制客戶(hù)端程序運行的時(shí)候,他首先設置一個(gè)作用指令用于這樣操縱SESSION(例如,添加一個(gè)新的屬性到SESSION,從SESSION中移除一個(gè)已存在的屬性,或則讓一個(gè)SESSION失效)。然后客戶(hù)端通過(guò)在CommonsHttpClient框架使用HttpClient和PostMethod類(lèi)調用ReplicationServlet?;谶@些SESSION命令,servlet生成一個(gè)新的SEESION或者修改一個(gè)已經(jīng)存在的SESSION并且轉到一個(gè)WEB頁(yè)面中瞻示SESSION細節。如果在管理SESSION中有任何錯誤,則轉到一個(gè)錯誤頁(yè)面。我寫(xiě)了一個(gè)定制的SESSION監聽(tīng)類(lèi)(ClusterAppSessionListener)用于跟蹤SESSION管理的細節,例如新SESSION的創(chuàng )建,修改或則終止已經(jīng)存在的SEESION。

圖表2展現了SESSION復制流程


Figure 2. Session replication sequence diagram

服務(wù)器上的SESSION狀態(tài)通過(guò)每個(gè)WEB請求的COOKIE跟蹤,所以為了保持使用同樣的SESSION,從客戶(hù)端發(fā)出的請求URL必須一樣。另外,在每次請求都創(chuàng )建一個(gè)新的HTTP SESSION。我使用了兩種類(lèi)型的,基于添加到SESSION中的屬性類(lèi)別的測試方法去測試復制。

第一個(gè)類(lèi)別有100個(gè)輕量對象(每個(gè)1K)添加到SESSION。第2個(gè)類(lèi)別中,我添加了一個(gè)單一的大對象(100K)去比較基于SESSION屬性大小的SESSION復制所花費的時(shí)間

以下列出了SessionReplicationClient的測試規格:
●        客戶(hù)端線(xiàn)程數:2
●        旋環(huán)次數:1000
●        請求延遲:1000 milliseconds
●        測試范例數:1000
●        SESSION屬性:?。?00個(gè)1K大小的對象)或則大(一個(gè)100K大小的對象)

使用指定參數運行測試客戶(hù)端的命令如下:
java -Dlog4j.configuration=log4j.xml com.clusterapp.test.SessionReplicationClient 2 192.168.0.10 9080 1000 1000 lite

測試環(huán)境包括使用不同的SESSION管理器(SimpleTcpReplicationManager 或則 DeltaManager)和SESSION復制模式(同步,異步,池),以下表格列出了在TOMCAT集群中的一系列測試環(huán)境:



想要把復制模式從池該到同步或異步,只要在server.xml文件中的SENDER標志中修改replicationMode屬性值就可以了。同樣,要改變SESSION管理器的類(lèi)型,只要改變Cluster元素的managerClassName屬性。

以下參數用于比較反應時(shí)間和SESSION復制的效率:
●        平均反映時(shí)間(ms)
●        平均請求時(shí)間(ms)
●        集群開(kāi)銷(xiāo)時(shí)間(ms)
●        復制時(shí)間(ms)
●        比率(bytes/ms)
●        比率(bytes/request)

測試結果


delta管理器和池復制模式相結合使用對與SESSION復制效率是最好的標準。同樣,保持SESSION大小較小可以比復制大SESSION快2到3倍。



復制管理器
DeltaManager在SESSION復制方面更有效,因為他僅僅處理SESSIONdeltas而不是全部的SESSION數據。使用DeltaManager,與使用簡(jiǎn)單復制管理器比較,SESSION復制效率會(huì )提高30%(大SESSION)到50%(小SESSION)。

復制模式
與其他兩個(gè)選項(同步和異步)比較,池復制模式復制SESSION花費更好的時(shí)間。在一個(gè)復制時(shí)間內,池選項幾乎是同意選項的 4倍快。但是在反應時(shí)間和集群開(kāi)銷(xiāo)時(shí)間方面,池和同步模式幾乎一樣,因為在同步模式里,集群在返回前不用等待SESSIONG完成復制

綜述
基于SESSION復制測試的結果,我們得出結論:應該在任何可能時(shí)候使用DeltaManager。因為復制SESSION數據的開(kāi)銷(xiāo)是意義重大的,必須確保沒(méi)有在SESSION中存儲太多的數據同樣,添加到SESSION中的屬性大小也是影響到SESSION復制時(shí)間的另一個(gè)因素。當我運行測試在SESSION存儲大對象(100K)的時(shí)候,與在SESSION中存儲小對象(1K)相比較,復制時(shí)間非常高。想要最小化SESSION復制開(kāi)銷(xiāo)最好的方法是避免調用session.setAttribute()以及把數據存儲在請求對象中而不是SESSION中。這樣相對更好因為當WEB請求完成的時(shí)候請求屬性會(huì )被重置。同樣,如果沒(méi)有商業(yè)方面的原因要在服務(wù)器存儲數據,我們可以以COOKIES的形式在客戶(hù)端存儲數據。這種方法完全避免了使用任何SESSIOIN的需要。

一種最小化SESSION復制時(shí)間開(kāi)銷(xiāo)的方法是限制集群中到兩個(gè)或則三個(gè)服務(wù)器上的服務(wù)器例程數目。這樣當第一個(gè)服務(wù)器失敗的時(shí)候第一個(gè)服務(wù)器上的SESSION數據已經(jīng)被拷貝到第二個(gè)服務(wù)器上。為了保持網(wǎng)絡(luò )暢通,集群可以分割成小塊的組,每個(gè)組包括兩個(gè)或則三個(gè)服務(wù)器例程。記住,集群中的服務(wù)器越多,SESSION復制花費的時(shí)間也越多。目前TOMCAT5不支持首要/次要復制的概念。在以后發(fā)布的版本中將會(huì )有,這樣我們將可以在一個(gè)或則兩個(gè)備份服務(wù)器上存儲SESSION。擁有這個(gè)特性的話(huà),TOMCAT將會(huì )為在集群環(huán)境中運行WEB服務(wù)器提供更全面的SESSION復制方法。

在未來(lái)TOMCAT將會(huì )支持的一些屬性:
●        擁有在SESSION中存在非序列化的屬性的能力,集群將會(huì )忽略該屬性
●        擁有復制context屬性以及非序列化的相關(guān)數據的能力,例如JDBC連接池和對象CACHES。

這些特性將會(huì )使在TOMCAT集群中的SESSION復制更強壯和靈活。

Iwant to thank Filip Hanik for his valuable suggestions and feedback onthe replication modes, session replication web application setup, andthe test client sections of this article.

資源
·本文的示例代碼
·Matrix-Java開(kāi)發(fā)者社區:http://www.matrix.org.cn
·onjava.com:onjava.com
·Tomcat 5集群中的SESSION復制 第一部分:http://www.matrix.org.cn/resource/article/43/43865_Tomcat_Clustering.html
·Tomcat Clustering/Session Replication Home Page:http://jakarta.apache.org/tomcat/tomcat-5.0-doc/cluster-howto.html
·Tomcat Load Balancer Home Page :http://jakarta.apache.org/tomcat/tomcat-5.0-doc/balancer-howto.html


Srini Penchikala is an information systems subject matter expert at Flagstar Bank.
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Apache配置反向代理、負載均衡和集群(mod
Tomcat 5集群中的SESSION復制 第一部分
web服務(wù)器集群
Tomcat 的集群和負載均衡 - 第二部分
配置 Tomcat 集群
基于A(yíng)pache的Tomcat負載均衡和集群
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久