2011-06-09 69 views
0

我正在尋找多線程彗星服務器庫 - 我需要的是在線程池(4-8線程)上工作的異步io(使用epoll)。如果它是多線程的,龍捲風將是理想的。多線程彗星服務器庫

爲什麼多線程?我需要處理和提供可能來自每個連接用戶的數據 - 它可以在使用數據庫的龍捲風實例之間同步,但即使是nosql也會大幅減速 - 幾乎每個請求都會以數據庫寫入/更新結束 - 即使通過使用異步司機不是一個好主意。我可以將所有內容存儲在本地易失性存儲器中,因此速度可以非常快 - 但必須在單個進程上運行以避免進程間通信。我不需要縮放 - 單個框就足夠了 - 但它必須快速。一些數據將存儲在MongoDB中 - 但是mongo查詢的數量將會是普通請求的5%。

重要的是 - 信號燈(和其他更高級別的方法)對我來說不是火箭科學,所以我不害怕同步。

要求:

  • 異步IO
  • 非阻塞
  • 數千個併發連接
  • FAST
  • 基本HTTP特徵的(GET,POST,餅乾)
  • 處理能力請求異步(執行某些操作,使用回調進行異步調用(例如數據庫查詢),處理回調,返回數據)
  • 線程池
  • C++/Java的/ Python的
  • 簡單,重量輕

這將是不錯的異步蒙戈司機太

我看着進入Boost ASIO,它似乎能夠做我所需要的 - 但我想專注於應用程序 - 而不是編寫http請求處理。

我讀過有關Tornado(似乎理想,但單線程),Simple(不知道是否可以異步處理請求和異步調用後返回數據),BOOST ASIO(非常好的,但太低級)

回答

1

那麼,經過更多的挖掘,我決定改變技術......我決定在TCP之上創建我自己的協議,並且Netty