我一直在使用jetty/tomcat應用程序服務器使用spring web應用程序兩年多,但是仍然存在的問題是如何處理這些服務器中的多個請求。我明白春天對於製作單身人士很有幫助,但我的理解僅限於此。 有人可以指向任何可以幫助我理解如何處理多個請求的好資源。jetty如何處理多個請求
23
A
回答
27
這可以回答很多層面,我一直盯着它兩天試圖找出答案......所以我會採取一個高水平的拍攝。
有jetty偵聽的這個服務器端口和一些接受者線程,它們的工作是獲取客戶端和服務器端之間建立的連接對象。一旦你有了這個連接,它就會通過碼頭處理程序體系結構進行身份驗證,或者取消會話ID並將會話對象附加到請求中。然後它進入servlet處理程序並找到相應的servlet,然後開始處理servlet-api。此時,您在servlet-api中的所有時間都有一個線程分配給您的請求,至少在servlet 2.5下。在servlet 3.0中,您可以使用一些異步機制,也可以使用jetty-continuations作爲在servlet 2.5 api上獲得異步支持的方式。
無論如何,服務器使用線程池來將線程分配給那些最終是花費所有時間在servlet-api中的線程的連接器。 jetty continuation api和較新的servlet 3.0支持提供了將線程釋放回主線程池的機制,以便他們可以花時間接受和處理其他請求。
顯然還有很多關於使用nio api的內容,以及jetty如何有效地管理所有這些東西,但也許這足以滿足您最初的問題。如果沒有,請隨時仔細閱讀碼頭文件(http://www.eclipse.org/jetty/documentation/current)或查看碼頭郵件列表。關於jetty-9優化方面的一些討論涉及到Webtide博客中的http,spdy和websocket連接處理和處理(http://webtide.com/blogs)。
相關問題
- 1. 如何處理多個異步請求?
- 2. AWS Lambda如何處理多個請求?
- 3. Asp.NET如何處理多個請求
- 4. 如何處理多個Ajax請求
- 5. 如何處理多個異步請求?
- 6. Doctrine如何處理多個請求?
- 7. Node.js請求 - 處理多個POST請求
- 8. 處理多個Ajax請求
- 9. 多個請求處理servlet
- 10. 處理多個Ajax請求
- 11. 處理多個Ajax請求
- 12. 如何配置嵌入式Jetty來處理OPTIONS預檢請求?
- 13. Jetty Server - 如何使用參數處理GET請求?
- 14. Python:多處理和請求
- 15. 如何處理HTTP請求
- 16. SAML - 如何處理請求?
- 17. 如何處理REST請求?
- 18. 在另一個Ajax請求中處理多個Ajax請求
- 19. 用C#處理多個請求HttpListener
- 20. Laravel單個請求多API處理器
- 21. 午睡處理多個請求
- 22. Cassandra中的多個請求處理
- 23. 在Flask中處理多個請求
- 24. Powershell httplistener同時處理多個請求
- 25. 使用ICallbackEventHandler處理多個請求
- 26. Delphi TIdTCPServer處理多個請求
- 27. 處理多個帖子請求的Servlet
- 28. cURL:處理多個異步請求
- 29. 單點擊處理多個http請求
- 30. apache camel -cxfrs處理多個請求
儘管我非常感謝您提供的見解。我仍然對一件事感到好奇。如果有一個正在等待執行的請求的線程池,那麼當前只有一個線程正在通過我在春季編寫的一段webapp代碼,或者可能有這個代碼的多個副本,並且我可以有多個請求被送達 –
servlet不是線程安全的,並且多個線程可以通過相同的service()或doPost()方法,「狀態」保留在方法和線程本身的變量中。儘管您可以讓servlet自己聲明並管理同步事物,但通常不希望您的servlet是單線程的,但整個想法是能夠同時處理多個請求,而當您有線程阻塞像servlet一樣簡單的東西。 –