2011-06-23 132 views
2

我正在從頭構建反向代理。要求是:構建反向代理

1)超級可擴展。它必須處理很多併發請求(也是流式傳輸,在我的情況下,1000請求/秒會是一個很好的性能)
2)超快速(非阻塞)。
3)無C/C++或二郎
4)易於十個分量 - 即使是,大會是不是一種選擇:)

經過一番研究,大多數人建議使用node.jsScala - 你是什麼認爲是這種工作的最佳解決方案?您將使用哪些技術來構建這種代理?

感謝

+1

超級可擴展和快速並不是一個非常明確的要求。你有更可量化的用例嗎? – Tobu

+0

問題更新 – Mark

+0

node.js可以處理它。我真的不知道node.js和Scala的優點,但我喜歡節點,因此得到了我的投票;) – Raynos

回答

4

我個人會先試用this guy

只是爲了闡述一下,那些說「嘗試node.js或Scala」的人略微誤導了Scala —就像Java —只是一種編程語言,而node.js是大多數平臺。除了一般性的優勢,主要的事情斯卡拉帶來的表這類項目有:

  1. 語法的多汁位,使得它更容易編寫演員系統,圖書館,即PartialFunction「文字」:

     
    trait NeedsAPF { 
        def pf: PartialFunction[Any,Unit] 
    } 
    
    object PFHaver extends NeedsAPF { 
        def pf = { 
        case i: Int => println("I got an int and it was " + i) 
        } 
    } 
    
  2. 當你準備好了,一個continuations plugin,它可以讓你寫的代碼看起來同步,但可以在幕後異步的。

-1

斯卡拉就足夠好了,但你需要使用NIO了很多,這意味着你可能會在與Java的 NIO庫親密接觸。我不知道Scala中有沒有可用的庫可以幫助你,但是,再一次,查找它是你的工作,而不是我的。 :-)