build立一个反向代理

我从头开始构build一个反向代理。 要求是:

1)超级可扩展。 它必须处理很多并发请求(也是stream式处理,在我的情况下,1000个请求/秒将是一个很好的性能)
2)超快速(非阻塞)。
3)没有C / C ++或Erlang
4)容易mantain – 即使是,大会是不是一个选项:)

经过一番研究,大部分人都build议使用node.jsScala ,你认为这是什么工作最好的解决scheme? 您将使用哪种技术来构build这种代理?

谢谢

我个人会先尝试这个家伙 。

为了说明一下,那些说“尝试node.js或者Scala”的人被误解为Scala-like Java – 仅仅是一种编程语言,而node.js是一个平台的大部分。 除了它的一般优点外,斯卡拉为这个项目带来的主要内容是:

  1. 一个多汁的语法,使得更容易将angular色系统编写为库,即PartialFunction“literals”:

    特质NeedsAPF {
       def pf:PartialFunction [Any,Unit]
     }
    
    对象PFHaver扩展NeedsAPF {
       def pf = {
        情况我:Int => println(“我有一个int,它是”+我)
       }
     }
    
  2. 当你准备好了,一个continuations插件 ,它可以让你编写看起来同步的代码,但是在封面上可以是asynchronous的。

我会看看: https : //github.com/nodejitsu/node-http-proxy,因为它满足您的所有要求。 我不知道为什么需要从头开始构build它,但是我想如果你决定在节点上构build它,你至less可以从中获得灵感。

Scala应该足够好,但是您需要使用NIO,这意味着您可能会与Java的 NIO库密切联系。 我不知道在Scala中有没有可用的库可以帮助你,但是,再一次,这是你的工作,而不是我的。 🙂