build立一个反向代理
我从头开始构build一个反向代理。 要求是:
1)超级可扩展。 它必须处理很多并发请求(也是stream式处理,在我的情况下,1000个请求/秒将是一个很好的性能)
2)超快速(非阻塞)。
3)没有C / C ++或Erlang
4)容易mantain – 即使是,大会是不是一个选项:)
经过一番研究,大部分人都build议使用node.js
或Scala
,你认为这是什么工作最好的解决scheme? 您将使用哪种技术来构build这种代理?
谢谢
我个人会先尝试这个家伙 。
为了说明一下,那些说“尝试node.js或者Scala”的人被误解为Scala-like Java – 仅仅是一种编程语言,而node.js是一个平台的大部分。 除了它的一般优点外,斯卡拉为这个项目带来的主要内容是:
-
一个多汁的语法,使得更容易将angular色系统编写为库,即PartialFunction“literals”:
特质NeedsAPF { def pf:PartialFunction [Any,Unit] } 对象PFHaver扩展NeedsAPF { def pf = { 情况我:Int => println(“我有一个int,它是”+我) } }
-
当你准备好了,一个continuations插件 ,它可以让你编写看起来同步的代码,但是在封面上可以是asynchronous的。
我会看看: https : //github.com/nodejitsu/node-http-proxy,因为它满足您的所有要求。 我不知道为什么需要从头开始构build它,但是我想如果你决定在节点上构build它,你至less可以从中获得灵感。
Scala应该足够好,但是您需要使用NIO,这意味着您可能会与Java的 NIO库密切联系。 我不知道在Scala中有没有可用的库可以帮助你,但是,再一次,这是你的工作,而不是我的。 🙂