scala 创建反向代理

dkqlctbz  于 12个月前  发布在  Scala
关注(0)|答案(3)|浏览(165)

我在从头开始做反向代理。这些要求是:
1)超级可扩展。它必须处理大量的并发请求(也是流,在我的情况下,1000请求/秒将是一个很好的性能)
2)超快(无阻塞)。
3)没有C/C++或Erlang
4)容易维护-即使是,组装不是一个选择:)
经过一些研究,大多数人建议使用node.jsScala-你认为这类工作的最佳解决方案是什么?您会使用哪些技术来构建这种代理?
谢谢

wljmcqd8

wljmcqd81#

我个人会先尝试Scala Finagle库。
简单地说,那些说“试试Node.js或Scala”的人有点被误导了,因为Scala就像Java一样只是一种编程语言,而Node.js更像是一个平台。除了它的一般优势外,Scala为这类项目带来的主要好处是:
1.这是一个有趣的语法,可以更容易地将actor系统编写为库,即PartialFunction“literals”:

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)
     }
   }

1.当您准备好使用continuations plugin时,它可以让您编写看起来是同步的代码,但实际上可以是异步的。

thigvfpy

thigvfpy2#

我想看看node-http-proxy,因为它满足您的所有要求。我不知道为什么需要从头开始构建它,但我想如果你决定在node中构建它,你至少可以从中获得灵感。

wmomyfyw

wmomyfyw3#

Scala应该已经足够好了,但是您需要经常使用NIO,这意味着您可能会密切接触 *Java的 * NIO库。我不知道Scala中是否有任何可用的库可以帮助你。

相关问题