亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: [轉(zhuǎn)]Apache,Tomcat集群與負(fù)載均衡配置 [打印本頁]

作者: 老臧    時間: 2008-11-21 09:19
標(biāo)題: [轉(zhuǎn)]Apache,Tomcat集群與負(fù)載均衡配置
文章標(biāo)題:Apache,Tomcat集群與負(fù)載均衡配置
信息來源:老臧's blog http://www.fovweb.com
如果您覺得本站對您有幫助的話,歡迎您把本站推薦給您的朋友,或放入收藏夾哦!謝謝您的支持!
   由于網(wǎng)絡(luò)的數(shù)據(jù)流量多集中在中心服務(wù)器一端,所以現(xiàn)在所說的負(fù)載均衡,多指的是對訪問服務(wù)器的負(fù)載進(jìn)行均衡(或者說分擔(dān))措施。負(fù)載均衡,從結(jié)構(gòu)上分為本地負(fù)載均衡和地域負(fù)載均衡(全局負(fù)載均衡),前一種是指對本地的服務(wù)器集群做負(fù)載均衡,后一種是指對分別放置在不同的地理位置、在不同的網(wǎng)絡(luò)及服務(wù)器群集之間作負(fù)載均衡。
環(huán)境需求:
Apache:apache_2.0.55     1 個
Tomcat: apache-tomcat-5.5.17 (zip版) 2個
mod_jk:mod_jk-apache-2.0.55.so  1個

第一部分:負(fù)載均衡
負(fù)載均衡,就是apache將客戶請求均衡的分給tomcat1,tomcat2....去處理
1.安裝apche,tomcat
(1)http://httpd.apache.org/ 下載Apache 2.0.55
(2)http://tomcat.apache.org/download-55.cgi下載tomcat5.5 zip版本(解壓即可,綠色版)

(3)下載mod_jk,注意和  apache版本匹配

(4)按照jdk,我的路徑為:E:\ide\apache\Apache2

(5)解壓兩份Tomcat, 路徑分別為 E:\ide\tomcat1,E:\ide\tomcat2



2. http.conf 同目錄下新建mod_jk.conf文件,內(nèi)容如下
在apache安裝目錄下conf目錄中找到http.conf

在文件最后加上下面一句話就可以了

include "E:\ide\apache\Apache2\conf\mod_jk.conf"



2. http.conf 同目錄下新建mod_jk.conf文件,內(nèi)容如下
#加載mod_jk Module
LoadModule jk_module  modules/mod_jk-apache-2.0.55.so
#指定 workers.properties文件路徑
JkWorkersFile  conf/workers.properties
#指定那些請求交給tomcat處理,"controller"為在workers.propertise里指定的負(fù)載分配控制器
JkMount /*.jsp controller
3.在http.conf同目錄下新建  workers.properties文件,內(nèi)容如下

worker.list = controller,tomcat1,tomcat2  #server 列表
#========tomcat1========
worker.tomcat1.port=8009         #ajp13  端口號,在tomcat下server.xml配置,默認(rèn)8009
worker.tomcat1.host=localhost   #tomcat的主機(jī)地址,如不為本機(jī),請?zhí)顚慽p地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor  = 1   #server的加權(quán)比重,值越高,分得的請求越多
#========tomcat2========
worker.tomcat2.port=9009       #ajp13  端口號,在tomcat下server.xml配置,默認(rèn)8009
worker.tomcat2.host=localhost   #tomcat的主機(jī)地址,如不為本機(jī),請?zhí)顚慽p地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor  = 1   #server的加權(quán)比重,值越高,分得的請求越多

#========controller,負(fù)載均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2    #指定分擔(dān)請求的tomcat
worker.controller.sticky_session=1

4.修改tomcat配置文件server.xml
如果你在不同電腦上安裝tomcat,tomcat的安裝數(shù)量為一個,可以不必修改tomcat配置文件
我這里是在同一臺電腦上安裝兩個tomcat,所以需要更改其中一個的設(shè)置
打開tomcat2/conf/server.xml文件




5.編寫一個測試jsp
建立一個目錄test.里面新建一個test.jsp,內(nèi)容為
JSP代碼


把test放到tomcat1,tomcat2的webapps下
6.啟動apache,tomcat1,tomcat2,進(jìn)行測試
通過 http://localhost/test/test.jsp 訪問,查看tomcat1的窗口,可以看到打印了一行"=========="
再刷新一次,tomcat2也打印了一條,再刷新,可以看到請求會被tomcat1,tomcat2輪流處理,實現(xiàn)了負(fù)載均衡


第二部分,配置集群
    只配置負(fù)載均衡還不行,還要session復(fù)制,也就是說其中任何一個tomcat的添加的session,是要同步復(fù)制到其它tomcat,  集群內(nèi)的tomcat都有相同的session
1. 修改tomcat1,  tomcat2的server.xml,將集群部分配置的在注釋符刪掉,并將tomcat2的4001端口改為4002,以避免與tomcat沖突,當(dāng)然,如果是兩臺電腦,是不用改端口的,去掉注釋符即可






2,修改測試項目test
修改test.jsp,內(nèi)容如下

JSP代碼

然后在test 新建WEB-INF目錄,WEB-INF下新建web.xml,內(nèi)容如下:
XML/HTML代碼

注意:在你的應(yīng)用的web.xml加入   <distributable/> 即可

ok,講test復(fù)制到tomcat1,tomcat2的webapps下,重啟apache,tomcat1,tomcat2,
輸入網(wǎng)址 http://lovelaozang.cn/test/test.jsp
新建一個 名稱為 xiaoluo  ,值為 cdut  的session,提交查詢,新開一個ie窗口,再提交查詢,如圖,可以看到,兩個tomcat 是負(fù)載均衡,并且session同步的










作者:羅代均 ldj_work#126.com,轉(zhuǎn)載請保持完整性

[ 本帖最后由 老臧 于 2009-10-8 13:04 編輯 ]
作者: pl_piaoling    時間: 2008-11-21 09:26
呵呵,先收藏了,謝謝
作者: wiliiwin    時間: 2008-11-21 10:54
不錯的文章 學(xué)習(xí)了
作者: 蟲蟲貓    時間: 2008-11-21 12:07
寫的非常詳細(xì),很不錯,收藏了
作者: kns1024wh    時間: 2008-11-21 12:28
標(biāo)題: 回復(fù) #1 老臧 的帖子
這個是應(yīng)用層的負(fù)載均衡,可以解決一些lvs的session的問題,如果能夠結(jié)合lvs將會有更好的效果
作者: Au_Hank    時間: 2008-11-21 13:37
標(biāo)題: 謝謝LZ,很好的文檔!
我想問個問題,SESSION是如何保存的,是保存在內(nèi)存里面還是保存在文件里?
如果是保存在文件里面的話,我是否也可以通過文件的同步來實現(xiàn)SESSION的同步?
作者: Au_Hank    時間: 2008-11-21 13:41
原帖由 kns1024wh 于 2008-11-21 12:28 發(fā)表
這個是應(yīng)用層的負(fù)載均衡,可以解決一些lvs的session的問題,如果能夠結(jié)合lvs將會有更好的效果


SESSION也可以存在數(shù)據(jù)庫里面吧,如果用數(shù)據(jù)庫的話,那不是沒有同步的問題?但是可能給數(shù)據(jù)庫帶來很大壓力?

另外,SESSION可以存文件里面嗎?如果可以的話,可以通過共享文件系統(tǒng)來實現(xiàn)同步,或者通過文件的同步來實現(xiàn),這樣可行不?
作者: Au_Hank    時間: 2008-11-21 13:46
標(biāo)題: 找到關(guān)于SESSION同步的資料
http://www.blogjava.net/lzj520/archive/2008/03/06/184224.html

集群中幾種session同步解決方案的比較(轉(zhuǎn))
在集群中session安全和同步是個最大的問題,下面是收集到的幾種session同步的方案,希望能通過分析其各自的優(yōu)劣找出其適應(yīng)的場景。

1. 客戶端cookie加密
簡單,高效。比較好的方法是自己采用cookie機(jī)制來實現(xiàn)一個session,在應(yīng)用中使用此session實現(xiàn)。

   問題:session中數(shù)據(jù)不能太多,最好只有個用戶id。

   參考實現(xiàn):http://rollerweblogger.org/

2. application server的session復(fù)制
   可能大部分應(yīng)用服務(wù)器都提供了session復(fù)制的功能來實現(xiàn)集群,tomcat,jboss,was都提供了這樣的功能。

   問題:

性能隨著服務(wù)器增加急劇下降,而且容易引起廣播風(fēng)暴;

session數(shù)據(jù)需要序列化,影響性能。

如何序列化,可以參考 對象的序列化和反序列化.

參考資料:

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

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

應(yīng)用服務(wù)器-JBoss 4.0.2集群指南

3. 使用數(shù)據(jù)庫保存session
   使用數(shù)據(jù)庫來保存session,就算服務(wù)器宕機(jī)了也沒事,session照樣在。

   問題:

程序需要定制;

每次請求都進(jìn)行數(shù)據(jù)庫讀寫開銷不小(使用內(nèi)存數(shù)據(jù)庫可以提高性能,宕機(jī)就會丟失數(shù)據(jù)?晒┻x擇的內(nèi)存數(shù)據(jù)庫有BerkeleyDB,Mysql的內(nèi)存表);

數(shù)據(jù)庫是一個單點,當(dāng)然可以做數(shù)據(jù)庫的ha來解決這個問題。

4. 使用共享存儲來保存session
   和數(shù)據(jù)庫類似,就算服務(wù)器宕機(jī)了也沒事,session照樣在。使用nfs或windows文件共享都可以,或者專用的共享存儲設(shè)備。

   問題:

程序需要定制;

頻繁的進(jìn)行數(shù)據(jù)的序列化和反序列化,性能是否有影響;

共享存儲是一個單點,這個可以通過raid來解決。

5. 使用memcached來保存session
   這種方式跟數(shù)據(jù)庫類似,不過因為是內(nèi)存存取的,性能自然要比數(shù)據(jù)庫好多了。

   問題:

程序需要定制,增加了工作量;

存入memcached中的數(shù)據(jù)都需要序列化,效率較低;

          memcached服務(wù)器一死,所有session全丟。memchached能不能做HA? 我也不知道,網(wǎng)站上沒提。

   參考資料:

應(yīng)用memcached保存session會話信息

正確認(rèn)識memcached的緩存失效

擴(kuò)展Tomcat 6.x,使用memcached存放session信息



6. 使用terracotta來保存session
   跟memcached類似,但是數(shù)據(jù)不需要序列化,并且是Find-Grained Changes,性能更好。配置對原來的應(yīng)用完全透明,原有程序幾乎不用做任何修改。而且terracotta本身支持HA。

問題:terracotta的HA本身進(jìn)行數(shù)據(jù)復(fù)制性能如何?

參考資料:

JVM-level clustering

Terracotta集群Tomcat實現(xiàn)Session同步

使用Terracotta和Tomcat建立ACTIVE-PASSIVE模式的集群

用Spring Web Flow和Terracotta搭建Web應(yīng)用

Terracotta實戰(zhàn)示例——集群RIFE

Terracotta近況:轉(zhuǎn)向開源,接受度,Hibernate支持



附:terracotta介紹

Open Terracotta is an enterprise-class, open-source, JVM-level clustering solution. JVM-level clustering simplifies enterprise Java by enabling applications to be deployed on multiple JVMs, yet interact with each other as if they were running on the same JVM. Terracotta extends the Java Memory Model of a single JVM to include a cluster of virtual machines such that threads on one virtual machine can interact with threads on another virtual machine as if they were all on the same virtual machine with an unlimited amount of heap.
作者: plyz_wp    時間: 2009-04-13 10:26
不錯不錯
作者: mingxp    時間: 2009-04-15 11:41
厲害,學(xué)習(xí)了。











-----------------------------------------------------
這里是制作mp3和同步字幕解決方式的一個創(chuàng)業(yè)點子:
http://hi.baidu.com/emailsell/bl ... 1f27d18d10299b.html
作者: zhou2324    時間: 2009-04-15 16:46
學(xué)習(xí)




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2