Apache + Tomcat 實現負載均衡(二)

第二次寫關於Apache + tomcat 實現負載均衡的文章。這篇爲第二篇。只爲讓自己長個記性發現第一次的錯誤。


不知道有沒有看我blog的人按照第一次的配置的方式去實現apache+tomcat,如果有人用了肯定就會有問題,因爲那個配置可以實現負載均衡。


但是session的複製應該會出現問題。今天我閒來無事想嘗試下mod_proxy的配置方式。但是還沒搞的時候發現原來的mod_jk的配置方式session複製有問題又重新


解決了下。現在記錄於此。



1.我用的是tomcat7.如果想要實現session的複製需要將tomcat conf中得server.xml進行修改。放開此段註釋。


<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>


2.在我上篇文章的基礎上修改 workers.properties文件爲現有形式:


#===========controller,負載均衡控制器====
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session_force=1
#1爲 true 0 爲false
worker.controller.sticky_session=0
此處在詳細解答下這個sticky_session的0和1的區別。

這個區別就是,當sticky_session=1的時候假如服務器A接受了請求,以後得請求都會發送給A,不會輪詢

當sticky_session=0的時候假如A服務器接受了請求,按F5再次刷新結果到了B服務器,再按一次又到了C服務器,會話會輪詢。

# sticky_session請求是發送給一臺服務器1,還是多臺服務器0。session的複製只與tomcat集羣配置有關。
但是經過我的測試發現,當我此屬性設置爲1的時候這個時候我訪問localhost/test/test.jsp 訪問到tomcat1上,再次新開瀏覽器

訪問同樣的路徑然後分配到tomcat2上,這個時候我將tomcat1關閉,在瀏覽器1上刷新這個時候就會報錯。如果這樣就沒有起到

作用,所以個人認爲,這裏還是應該配置成0,這樣,當你的一個tomcat掛掉的時候他會輪詢到別的tomcat上,而且還攜帶着你的session信息。


這篇應該算是答疑,希望配置中出現問題的朋友也研究討論下。看看明天有時間搞下mod_proxy的形式,因爲現在mod_jk的形式已經淘汰了。


發佈了49 篇原創文章 · 獲贊 7 · 訪問量 41萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章