麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Tomcat 5集群中的SESSION復(fù)制二

2019-11-18 13:04:32
字體:
供稿:網(wǎng)友

  集群安裝
  
  為了在TOMCAT5容器中session復(fù)制可用,必須完成以下步驟:
  
  ●    為了集群能夠工作,你必須使用你系統(tǒng)上的多點(diǎn)傳送可使用
  ●    為了有些使用SESSION復(fù)制,所有TOMCAT例程必須同樣配置。這意味著WEB應(yīng)用程序必須統(tǒng)一的部署在集群中的每臺(tái)服務(wù)器上。這些配置同樣簡化了集群治理,維護(hù)和發(fā)現(xiàn)維修故障的任務(wù)。
  ●    在server.xml未注釋的Cluster 和Valve (ReplicationValve) 元素。起用server.xm中的CLUSTER元素意味著所有WEB CONTEXT的SESSION治理器將會(huì)改變。因此 當(dāng)運(yùn)行一個(gè)集群的時(shí)候,你應(yīng)該確保只有一個(gè)需要被集成WEB應(yīng)用程序并且移除其他的。
  ●    假如服務(wù)器例程運(yùn)行在同樣的機(jī)器上,應(yīng)該確保每個(gè)例程的tcpListenPort屬性是一致的。
  ●    確保web.xml有distributable屬性
  ●    所有的SESSION屬性必須實(shí)現(xiàn)java.io.Serializable接口
  
  范例集群安裝有兩個(gè)TOMCAT例程和一個(gè)負(fù)載平衡用于分配服務(wù)器間的請(qǐng)求。所有三個(gè)服務(wù)器都運(yùn)行在一個(gè)單獨(dú)的機(jī)器上,以下表格列出了集群和負(fù)載平衡上的配置參數(shù)。
  
  
 Tomcat 5集群中的SESSION復(fù)制二(圖一)

  
  編輯注解:以上Web App Directory中的值為了適應(yīng)排版而換行了。在你的部署中,每個(gè)值應(yīng)該是單一而完整的一行
  
  注重:不要設(shè)置tcpListenAddress為127.0.0.1,因?yàn)?27用于回環(huán)地址,在SESSION復(fù)制期間可能會(huì)出現(xiàn)問題。
  
  負(fù)載平衡器安裝
  
  TOMCAT服務(wù)器不提供失效轉(zhuǎn)移能力用于當(dāng)一個(gè)集群接點(diǎn)失效的時(shí)候重定向任何引入的請(qǐng)求到下一個(gè)可用的服務(wù)器上。所以我使用一個(gè)分開的負(fù)載平衡器去治理WEB請(qǐng)求的負(fù)載平衡。有一些流行的負(fù)載平衡器例如Apache/mod_jk, Balance, 和 Pen。我在范例集群安裝中使用Pen作為負(fù)載平衡器。
  
  Pen是一個(gè)簡單的,基于TCP協(xié)議,例如HTTP或者SMTP的負(fù)載平衡器。他答應(yīng)多個(gè)服務(wù)器對(duì)外表現(xiàn)為一個(gè)服務(wù)器,并且自動(dòng)檢測(cè)關(guān)閉的服務(wù)器,在可用的服務(wù)器間分配客戶斷。他提供了負(fù)載平衡和失效轉(zhuǎn)移能力。Pen易于安裝以及配置,非常輕易使用和運(yùn)行在Windows和UNIX操做系統(tǒng)上。范例配置使用round-robin負(fù)載平衡算法用于在集群節(jié)點(diǎn)間分配負(fù)載平衡
  
  運(yùn)行負(fù)載平衡器的命令如下:
  pen -r -a -f -d localhost:8080 192.168.0.10:9080 192.168.0.20:10080
  
  以下是用于啟動(dòng)負(fù)載平衡器的每個(gè)命令行參數(shù)的解釋
  
  -r: 使用round robin負(fù)載平衡
  -a: 打印往返發(fā)送的ASCII格式的數(shù)據(jù)
  -f: 保持在前臺(tái)
  -d: 起用DEBUG模式
  
  想要知道更多用于啟動(dòng)PEN的參數(shù)細(xì)節(jié),請(qǐng)?jiān)L問PEN網(wǎng)站
  
  圖表1展示了兩個(gè)集群節(jié)點(diǎn),一個(gè)負(fù)載平衡器,儀器層,以及測(cè)試客戶端的拓?fù)鋱D
  
  
 Tomcat 5集群中的SESSION復(fù)制二(圖二)
點(diǎn)擊查看大圖

  Figure 1. Cluster setup diagram

  
  測(cè)試安裝
  
  我創(chuàng)建了一個(gè)叫做clusterapp的WEB應(yīng)用程序來驗(yàn)證集群安裝以及SESSION復(fù)制原理。為了測(cè)試真實(shí)的SESSION復(fù)制,我寫了一個(gè)叫做SessionReplicationClient的簡單JAVA客戶端用語測(cè)試從一個(gè)服務(wù)器拷貝SESSION數(shù)據(jù)到另外一個(gè)服務(wù)器的需要的時(shí)間。這個(gè)客戶端使用Jakarta Commons HttpClient況架去創(chuàng)建和操作HTTP SESSION并且調(diào)用TOMCAT服務(wù)器上的一個(gè)SERVLET。用于測(cè)試SESSION復(fù)制的機(jī)器軟硬件配置如下:
  
  ●    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
  
  當(dāng)一個(gè)復(fù)制客戶端程序運(yùn)行的時(shí)候,他首先設(shè)置一個(gè)作用指令用于這樣操縱SESSION(例如,添加一個(gè)新的屬性到SESSION,從SESSION中移除一個(gè)已存在的屬性,或則讓一個(gè)SESSION失效)。然后客戶端通過在Commons HttpClient框架使用HttpClient和PostMethod類調(diào)用ReplicationServlet。基于這些SESSION命令,servlet生成一個(gè)新的SEESION或者修改一個(gè)已經(jīng)存在的SESSION并且轉(zhuǎn)到一個(gè)WEB頁面中瞻示SESSION細(xì)節(jié)。假如在治理SESSION中有任何錯(cuò)誤,則轉(zhuǎn)到一個(gè)錯(cuò)誤頁面。我寫了一個(gè)定制的SESSION監(jiān)聽類(ClusterAppSessionListener)用于跟蹤SESSION治理的細(xì)節(jié),例如新SESSION的創(chuàng)建,修改或則終止已經(jīng)存在的SEESION。
  
  圖表2展現(xiàn)了SESSION復(fù)制流程
  
  
 Tomcat 5集群中的SESSION復(fù)制二(圖三)
點(diǎn)擊查看大圖

  Figure 2. Session replication sequence diagram

  
  服務(wù)器上的SESSION狀態(tài)通過每個(gè)WEB請(qǐng)求的COOKIE跟蹤,所以為了保持使用同樣的SESSION,從客戶端發(fā)出的請(qǐng)求URL必須一樣。另外,在每次請(qǐng)求都創(chuàng)建一個(gè)新的HTTP SESSION。我使用了兩種類型的,基于添加到SESSION中的屬性類別的測(cè)試方法去測(cè)試復(fù)制。
  
  第一個(gè)類別有100個(gè)輕量對(duì)象(每個(gè)1K)添加到SESSION。第2個(gè)類別中,我添加了一個(gè)單一的大對(duì)象(100K)去比較基于SESSION屬性大小的SESSION復(fù)制所花費(fèi)的時(shí)間
  
  以下列出了SessionReplicationClient的測(cè)試規(guī)格:
  
  ●    客戶端線程數(shù):2
  ●    旋環(huán)次數(shù):1000
  ●    請(qǐng)求延遲:1000 milliseconds
  ●    測(cè)試范例數(shù):1000
  ●    SESSION屬性:小(100個(gè)1K大小的對(duì)象)或則大(一個(gè)100K大小的對(duì)象)
  
  使用指定參數(shù)運(yùn)行測(cè)試客戶端的命令如下:
  
  java -Dlog4j.configuration=log4j.xml com.clusterapp.test.SessionReplicationClient 2 192.168.0.10 9080 1000 1000 lite
  
  測(cè)試環(huán)境包括使用不同的SESSION治理器(SimpleTcPReplicationManager 或則 DeltaManager)和SESSION復(fù)制模式(同步,異步,池),以下表格列出了在TOMCAT集群中的一系列測(cè)試環(huán)境:
  
  
 Tomcat 5集群中的SESSION復(fù)制二(圖四)

  
  想要把復(fù)制模式從池該到同步或異步,只要在server.xml文件中的SENDER標(biāo)志中修改replicationMode屬性值就可以了。同樣,要改變SESSION治理器的類型,只要改變Cluster元素的managerClassName屬性。
  
  以下參數(shù)用于比較反應(yīng)時(shí)間和SESSION復(fù)制的效率:
  
  ●    平均反映時(shí)間(ms)
  ●    平均請(qǐng)求時(shí)間(ms)
  ●    集群開銷時(shí)間(ms)
  ●    復(fù)制時(shí)間(ms)
  ●    比率(bytes/ms)
  ●    比率(bytes/request)
  
  測(cè)試結(jié)果
  
  delta治理器和池復(fù)制模式相結(jié)合使用對(duì)與SESSION復(fù)制效率是最好的標(biāo)準(zhǔn)。同樣,保持SESSION大小較小可以比復(fù)制大SESSION快2到3倍。
  
  
 Tomcat 5集群中的SESSION復(fù)制二(圖五)

  
  復(fù)制治理器
  
  DeltaManager在SESSION復(fù)制方面更有效,因?yàn)樗麅H僅處理SESSION deltas而不是全部的SESSION數(shù)據(jù)。使用DeltaManager,與使用簡單復(fù)制治理器比較,SESSION復(fù)制效率會(huì)提高30%(大SESSION)到50%(小SESSION)。
  
  復(fù)制模式
  
  與其他兩個(gè)選項(xiàng)(同步和異步)比較,池復(fù)制模式復(fù)制SESSION花費(fèi)更好的時(shí)間。在一個(gè)復(fù)制時(shí)間內(nèi),池選項(xiàng)幾乎是同意選項(xiàng)的 4倍快。但是在反應(yīng)時(shí)間和集群開銷時(shí)間方面,池和同步模式幾乎一樣,因?yàn)樵谕侥J嚼铮涸诜祷厍安挥玫却齋ESSIONG完成復(fù)制
  
  綜述
  
  基于SESSION復(fù)制測(cè)試的結(jié)果,我們得出結(jié)論:應(yīng)該在任何可能時(shí)候使用DeltaManager。因?yàn)閺?fù)制SESSION數(shù)據(jù)的開銷是意義重大的,必須確保沒有在SESSION中存儲(chǔ)太多的數(shù)據(jù)同樣,添加到SESSION中的屬性大小也是影響到SESSION復(fù)制時(shí)間的另一個(gè)因素。當(dāng)我運(yùn)行測(cè)試在SESSION存儲(chǔ)大對(duì)象(100K)的時(shí)候,與在SESSION中存儲(chǔ)小對(duì)象(1K)相比較,復(fù)制時(shí)間非常高。想要最小化SESSION復(fù)制開銷最好的方法是避免調(diào)用session.setAttribute()以及把數(shù)據(jù)存儲(chǔ)在請(qǐng)求對(duì)象中而不是SESSION中。這樣相對(duì)更好因?yàn)楫?dāng)WEB請(qǐng)求完成的時(shí)候請(qǐng)求屬性會(huì)被重置。同樣,假如沒有商業(yè)方面的原因要在服務(wù)器存儲(chǔ)數(shù)據(jù),我們可以以COOKIES的形式在客戶端存儲(chǔ)數(shù)據(jù)。這種方法完全避免了使用任何SESSIOIN的需要。
  
  一種最小化SESSION復(fù)制時(shí)間開銷的方法是限制集群中到兩個(gè)或則三個(gè)服務(wù)器上的服務(wù)器例程數(shù)目。這樣當(dāng)?shù)谝粋€(gè)服務(wù)器失敗的時(shí)候第一個(gè)服務(wù)器上的SESSION數(shù)據(jù)已經(jīng)被拷貝到第二個(gè)服務(wù)器上。為了保持網(wǎng)絡(luò)暢通,集群可以分割成小塊的組,每個(gè)組包括兩個(gè)或則三個(gè)服務(wù)器例程。記住,集群中的服務(wù)器越多,SESSION復(fù)制花費(fèi)的時(shí)間也越多。目前TOMCAT5不支持首要/次要復(fù)制的概念。在以后發(fā)布的版本中將會(huì)有,這樣我們將可以在一個(gè)或則兩個(gè)備份服務(wù)器上存儲(chǔ)SESSION。擁有這個(gè)特性的話,TOMCAT將會(huì)為在集群環(huán)境中運(yùn)行WEB服務(wù)器提供更全面的SESSION復(fù)制方法。
  
  在未來TOMCAT將會(huì)支持的一些屬性:
  
  ●    擁有在SESSION中存在非序列化的屬性的能力,集群將會(huì)忽略該屬性
  ●    擁有復(fù)制context屬性以及非序列化的相關(guān)數(shù)據(jù)的能力,例如JDBC連接池和對(duì)象CACHES。
  
  這些特性將會(huì)使在TOMCAT集群中的SESSION復(fù)制更強(qiáng)壯和靈活。
  
  I want to thank Filip Hanik for his valuable suggestions and feedback on the replication modes, session replication web application setup, and the test client sections of this article.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 噜噜噜躁狠狠躁狠狠精品视频 | 青热久思思 | 曰韩精品| 羞羞色在线观看 | 久草在线小说 | 免费午夜视频在线观看 | 污黄视频在线播放 | 国产午夜精品视频免费不卡69堂 | 中文字幕观看 | 最新一级毛片 | 成人精品免费看 | 欧美成人免费 | 99久久精品免费 | 久草资源在线观看 | 在线无码 | 久久精品一区二区三区国产主播 | 欧美一级做一级爱a做片性 91在线视频观看 | 国产伦久视频免费观看视频 | 精品爱爱| 久久精品亚洲欧美日韩精品中文字幕 | 免费在线看黄 | 91 免费看片| 久草在线高清视频 | 羞羞网站入口 | 国产成人精品免费视频大全最热 | a免费视频| 一级α片免费看刺激高潮视频 | 久色porn | 日韩剧情片 | 黄色7777| 91超视频 | 中文字幕免费在线看 | 久久久久久久久久久久久久久久久久 | 黄色免费电影网址 | 亚洲操比视频 | 中国av免费观看 | av影片在线观看 | 久久千人斩 | www.69色 | 久久精品首页 | 国产自91精品一区二区 |