我們的新項目會得到很多併發請求。我對此沒有太多的經驗。有什麼建議麼?我看過NodeJS,扭曲,EventMachine &龍捲風,但我沒有任何方法來衡量他們將如何適合。對於非阻塞和快速服務器,框架,語言的建議?
有什麼建議嗎?
我們的新項目會得到很多併發請求。我對此沒有太多的經驗。有什麼建議麼?我看過NodeJS,扭曲,EventMachine &龍捲風,但我沒有任何方法來衡量他們將如何適合。對於非阻塞和快速服務器,框架,語言的建議?
有什麼建議嗎?
問自己以下問題(至少),然後再決定:
什麼語言我(或/和我的同事),知道嗎?如果你知道Python,你可以選擇Twisted,如果你知道Ruby,你可以選擇EventMachine,或者如果你對JavaScript非常好,你可以選擇Node.js. (只有Erlang在這裏沒有優勢)
我想使用語言結構(Erlang,Node.js)還是庫(Twisted,EventMachine)?
我是否需要大量資源,社區支持,書籍等?看看自己在IRC上的頻道有多大,你會想出一個主意。 (我可能有偏見,但我看到Node.js頻道上有很多人,他們真的很有幫助)
你想要框架成熟嗎? (Node例如有2年,Erlang已經在`98等正式發佈)
什麼公司/產品使用什麼異步框架? (例如CouchDB的已建成二郎,Node.js的用於通過Github上,LinkedIn和其他人,EventMachine的是圖解!用,37點的信號等)
特定非阻塞框架的適合性可以取決於在某些方面,如:
正如其他人所說 - 你應該選擇擁有非阻塞庫(例如數據庫驅動程序)的人,如果可能的話,使用你的團隊知道的語言。人氣也可能是一個優勢。
如果您使用Python進行編程,gevent也可能是一個不錯的選擇。甚至有一個Socket.IO implementation。
制定衡量適宜性的指標,然後使用該指標。如果你沒有提供評估的基礎,那麼這裏的任何人都可以告訴你哪一個最合適?
等一下,從頭開始。扭曲是最適合的一切,無論如何,總是。