2012-08-01 70 views
0

背景:在我的應用程序中,我使用ServiceMix實例來提供HTTP請求。爲了平衡這些,我們找出了(根據某些要求)我們需要使用Tomcat。只能使用tomcat作爲負載均衡器(無Apache Http服務器)

問題:我認爲應該說tomcat內置了自己的http服務器,可以使用Tomcat和mod_jk(沒有Apache Http Server)作爲負載均衡器嗎?

我的讀數:我看了幾Tomcat的domcumentation像Tomcat Clustering docTomcat JK load balancer(這是不是很有用)

所以我奇怪的是它甚至有可能只使用Tomcat和mod_jk的爲宗旨負載均衡!!

任何幫助表示讚賞。

回答

1

mod_jk在Apache httpd服務器或其他服務器中運行,它是用本機代碼編寫的,下面是一些可以工作的配置。

  1. 的Apache的httpd或mod_jk的負載平衡請求Tomcat服務器IIS
  2. 與反向代理支持和負載平衡功能的Web服務器可以使用
  3. 專用負載平衡器產品可用於

對於負載均衡,您需要確保確定您需要粘滯會話路由的天氣。

另外你也不需要配置tomcat集羣會話管理器來配置和使用負載平衡。

我相當肯定,tomcat本身的java部分沒有內置負載均衡器,它期望用戶使用上述選項之一。

2

要負載平衡你的應用程序,你需要運行兩個或更多的Tomcat實例和同一個應用程序。您可以在同一臺計算機上的不同端口(例如www.myapp.com:8080和www.myapp.com:9090)或同一端口上的不同機器上運行兩個實例(例如www1.myapp.com:8080和www2。 myapp.com:8080)。通常這些實例共享相同的後端數據存儲。每個Tomcat都是它自己的網絡服務器,所以你將有多個Web服務器在運行。

因爲您現在有兩個相同的實例,用戶可以使用這兩個實例中的任何一個。如果他們當前使用的機器出現問題,他們也可以從一個切換到另一個。但您不希望用戶必須手動選擇機器或交換。這是負載平衡器進來的地方。

負載均衡器接受來自用戶的請求並將其動態路由到您的負載平衡實例之一。負載均衡器也是一個Web服務器。它可以是像BIG-IP F5這樣的硬件負載均衡器,也可以是像Apache,Nginx或甚至另一個Tomcat服務器這樣的軟件。

如果您使用Apache Web服務器進行負載平衡,則需要一個Apache模塊將請求傳遞給您的某個Tomcat服務器。通常這是mod_jk或mod_proxy。

所以簡短的回答是,如果你使用Apache作爲你的負載平衡器,那麼你必須使用mod_jk(或mod_proxy)。如果你使用另一個負載平衡器,那麼你不能使用mod_jk。

另請參閱Tomcat load balancer solutions

+0

感謝所有的答覆..從@leonm回答引用:*它可以是一個硬件負載均衡器就像一個BIG-IP F5,或軟件如Apache,Nginx的甚至另一個Tomcat服務器*。我正在尋找您建議的第三個軟件選項(另一個Tomcat服務器)。想知道如何可能。 – 2012-08-01 11:06:41

相關問題