開發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. PHP/MySQL Web開發人員應該知道哪些服務器?
- 2. 從哪裏開始Web服務開發?
- 3. ASP.NET Web開發服務器
- 4. 您發現哪些Web開發瀏覽器插件有用?
- 5. ASP.NET - 哪些文件存儲xml Web服務的方法簽名?
- 6. Web服務開發
- 7. 開源REST Web服務技術有哪些優點?
- 8. 要使用哪種? Visual Studio開發服務器或本地IIS Web服務器?
- 9. 的WebPack開發服務器+高速Web服務器
- 10. 開發Web服務器上的基本Subversion服務器問題
- 11. 肥皂web服務與Apache駱駝集成的方法有哪些舉例
- 12. 如何從Web服務器開始開發短信服務?
- 13. 哪個rails服務器用於開發?
- 14. 錯誤運行開發Web服務器
- 15. 有沒有一種簡單的方法來處理iPhone開發的Web服務?
- 16. 要試驗哪個XMPP服務器開發服務器組件
- 17. 客戶 - 服務器開發人員在理解Web應用程序/開發時面臨哪些障礙?
- 18. 網頁與服務器通信的方式有哪些?
- 19. 永久運行服務器端腳本的方式有哪些?
- 20. 開發一個web服務
- 21. 開發Coldfusion Web服務
- 22. Windows服務.NET中有哪些不同的配置文件?
- 23. 發佈eclipse創建的Web服務需要哪些文件?
- 24. 無法啓動已配置的Visual Studio開發Web服務器
- 25. Eclipse Web開發插件與遠程服務器同步
- 26. CSS在Web服務器上的呈現方式與在開發環境中的呈現方式不同
- 27. 無法轉發到Ubuntu Web服務器
- 28. 從服務器撥打電話 - 有哪些服務?
- 29. 開發Web服務可能帶來的一些陷阱/提示
- 30. 顛覆集成web服務器的web開發
(通常)event-loop和nio會聚在一起... – DuduAlul 2012-02-04 17:46:23