開發Web服務器有哪些不同的方法?所以我想有(1)多線程(2)事件循環,還有什麼?每種方法的優缺點是什麼?你什麼時候使用每個?你能列出每個方案的特定impl嗎?開發Web服務器有哪些不同的方法?
3
A
回答
0
你應該添加非阻塞I/O。看看Netty。
4
不同的方法可以是:
單線程:所有連接都通過單個線程 「監聽」並等待連接和流程requests.It 很容易實現,但它是處理最沒用的服務器,因爲它可以 一次只能
多線程服務請求:服務器監聽請求和每個傳入 請求被分配到一個新的線程來處理it.So每個客戶 連接由其專用線程處理。這種方法(不像 1)支持客戶端請求的併發處理,但不 規模以及因爲每個新創建的請求在服務器 一個新的線程,這需要很多resources.Eventually的服務器將達到一個極限
多線程池:與(2)相同,但不是創建新的線程來處理每個傳入的請求,而是使用線程池 中的線程。線程被創建並放置在一個池中用於以後的重用。這種擴展能夠很好地支持多個客戶端請求,並且它是標準的方法。 Tomcat是這樣工作的。
事件隊列:每個傳入的請求被放入一個隊列中,並由後臺線程處理,後臺線程處理隊列的請求。它是 非阻塞,這種類型的異步處理也很好地規模爲 。老實說,我不知道它是否比(3)在 performance(3)好。我認爲可以使用 NIO體系結構
0
一些服務器,例如G-WAN混合多線程,池和事件隊列,讓服務器飽和CPU內核與每個線程處理許多連接。
Disclamer:我參與了這個項目的開發。
相關問題
- 1. Heroku上有哪些不同的Web服務器選項?
- 2. PHP/MySQL Web開發人員應該知道哪些服務器?
- 3. 從哪裏開始Web服務開發?
- 4. ASP.NET Web開發服務器
- 5. 從開發環境到web服務器的CSS不同
- 6. 您發現哪些Web開發瀏覽器插件有用?
- 7. ASP.NET - 哪些文件存儲xml Web服務的方法簽名?
- 8. nLog不會觸發web服務方法
- 9. 開源REST Web服務技術有哪些優點?
- 10. Web服務開發
- 11. 哪些服務器適用於開發包中的Perl?
- 12. 要使用哪種? Visual Studio開發服務器或本地IIS Web服務器?
- 13. ASP.NET開發Web服務器啓動但沒有任何服務
- 14. 的WebPack開發服務器+高速Web服務器
- 15. 作爲web服務器的Asp.net開發服務器
- 16. 開發Web服務器上的基本Subversion服務器問題
- 17. 肥皂web服務與Apache駱駝集成的方法有哪些舉例
- 18. 如何從Web服務器開始開發短信服務?
- 19. 哪個rails服務器用於開發?
- 20. RIA開發的客戶端和服務器端調試有哪些技術
- 21. Android到Web服務器開發mySql
- 22. npm開發web服務器重啓
- 23. 錯誤運行開發Web服務器
- 24. 有沒有一種簡單的方法來處理iPhone開發的Web服務?
- 25. 要試驗哪個XMPP服務器開發服務器組件
- 26. 客戶 - 服務器開發人員在理解Web應用程序/開發時面臨哪些障礙?
- 27. 在不同的專用Web服務器上拆分Web服務
- 28. 網頁與服務器通信的方式有哪些?
- 29. 永久運行服務器端腳本的方式有哪些?
- 30. 開發一個web服務
(通常)event-loop和nio會聚在一起... – DuduAlul 2012-02-04 17:46:23