2011-04-20 65 views
1

假設我們要設計一個Java EE Web應用程序系統,因爲太多的用戶可能會向服務發送請求,所以這個系統在響應中顯示出高性能和高效率。可伸縮的高性能Java EE解決方案?

我正在考慮將應用程序實例部署到不同的應用程序服務器(JBoss,Tomcat等)。所以我們有了「應用服務器集羣」的概念。此應用程序需要在不同的引擎上處理一些數據,這些引擎再次在不同的服務器上安置。

所以我們也有「引擎服務器集羣」的概念。假設我們要從單點訪問應用程序,例如從一個簡單的URL。如何將此URL與應用程序服務器集羣關聯起來?應該採用什麼樣的策略來設計由應用服務器和其他一些服務器組成的系統,這些服務器需要儘可能高效地進行通信?

歡迎任何解決方案和建議。如果你已經處理了與此相似的現實世界問題,你能幫助我嗎?任何有關教程,電子書,樣本的建議也都歡迎。

+0

如果您逐點重寫您的問題,這將是一件好事。寫下你的期望,然後寫下你認爲應該做的事情,最後提出問題。一個不太可讀的問題是一個看不太清楚的問題。 – Nishant 2011-04-20 06:44:10

+2

使用Glassfish - 魚可伸縮:-) – 2011-04-20 06:46:36

+3

@Stephen C,JBoss也是! – 2011-04-20 07:01:45

回答

1

要回答(一些)你的問題:

  • 如何與這個網址與應用服務器的集羣?在你的網絡服務器前使用負載平衡器 - 最好使用一個硬件(更快),否則你可以用普通的商品PC /硬件(例如haproxy)來構建它(如:haproxy)
  • 應該採用什麼樣的策略來設計這樣的系統由應用服務器和一些其他需要儘可能高效通信的服務器組成?取決於您正在交換的數據類型以及方式。如果你不需要同步調用,那麼你可以看看消息傳遞 - JMS,ActiveMQ或RabbitMQ;所以發送一條消息到後端服務器,並有另一個線程等待回覆,當回覆到達時將它接收併發送。如果您需要同步通信,則有許多選項 - 從簡單的基於套接字的通信到RMI,SOAP等。值得考慮的是兩層之間交換的數據量。