2015-08-14 20 views
-1

在一個功能強大的h/w節點上,擴展部署在tomcat容器中的單個webservice有哪些不同的方法可用?如何擴展Spring webservices?

克隆WS並在容器中部署這個WS的多個實例並以某種方式平衡它是有意義的(不太可能,因爲Web服務如何是唯一的端點)?或者,tomcat應該在不同的端口上運行多個進程(即使在這裏,WS客戶端也只有一個url)?

+1

現在的問題太廣泛了。有整個博客和文件與此相關。我認爲理想的解決方案將取決於您當前的架構和範圍。 – npinti

+0

我不需要一個確定的答案。我想了解什麼是不同的頂級戰略。擴展很容易理解 - 您的負載平衡器在IP級別上運行。但通常如何處理「擴大規模」? – Jay

+1

您可以參考下面的鏈接進行水平放大。 1. http://tomcat.apache.org/connectors-doc/generic_howto/loadbalancers.html 2. https://dzone.com/articles/how-configure-tomcatjboss-and – Raghu

回答

0

爲什麼你需要縮放?因爲單個實例無法完成這項工作。

什麼是限制因素? CPU,內存,其他資源。

如果您正在執行每進程限制,例如假設單個JVM有最大內存大小,那麼在同一臺計算機上啓動另一個Tomcat實例可能有意義。在這種情況下,如你所說,你將需要使用不同的端口。從您的評論中,我認爲您將此模式稱爲縮放-增加

更有可能你打到每臺機器的限制,只是沒有足夠的CPU。在這種情況下,你需要在另一臺機器上啓動一個新的實例。這有額外的彈性可能帶來的好處。你失去一臺機器,你仍然有其他地方的服務運行。這稱爲縮放-列出

無論是哪種情況,您都需要在實例前使用某種形式的IP噴霧器或負載平衡器,以便您的客戶端無需「瞭解」各個集羣成員。

我並沒有真正看到兩種情況之間的區別。從客戶的角度來看,只需打噴霧器。從服務器角度來看,當你需要確保資源不會發生衝突時。端口是一個明顯的例子,但你也需要考慮諸如日誌文件之類的東西。通常值得提出一套命名約定和資源結構,以便識別屬於什麼內容。

由於正確地完成所有這些配置可能很容易出錯,因此設置一個實例是一個簡單的,可重複的任務也值得投資於一些腳本。