2012-07-31 128 views
0

我有一個傳統的servlet,(符合Oracle/Sun定義的servlet API)。它有時會收到來自數百個用戶的大量請求,並且在某些情況下,任何HTTP客戶端都可以快速連續發起多個請求。有時,當接收到第二個請求並且已經開始處理時,servlet尚未完成處理來自HTTP客戶端的第一個請求。所以,我希望能夠通過在來自同一個HTTP客戶端並按順序處理它們時將它們排隊來管理請求的處理。從同一個HTTP客戶端收到請求時,這只是一個問題。排隊來自同一個HTTP客戶端的servlet請求?

我聽說FilterChains,但我不確定這是否適合這種情況。排隊來自用戶的多個請求的最合適的方式是什麼?

+0

我想你遇到了這個可伸縮性問題,並試圖用你的代碼解決這個問題。我建議你看一下NIO servlet容器,比如jetty。 – 2012-07-31 12:31:35

回答

-1

在一個HTML頁面中創建兩個框架。一個主框架和另一個輔助框架。做這樣的事情,只要我們發送一個請求響應應該被重定向到二次freme。 我不確定它會適用於你的情況。但我在我的項目中解決了這類問題。其中servlet處理的重量很重,而且我無法完成一個servlet進程。

+0

在客戶端解決問題並不是一個有效的解決方案。固有的問題仍然存在。 servlet引擎需要進行編碼,以便無論客戶端發送請求,servlet管理器都能夠對其進行合理處理。 – giulio 2012-07-31 10:00:22

+0

我認爲在服務器端你不能處理排隊。因爲它使用多個線程,所有的執行都會同時執行。 .. – 2012-07-31 10:13:32