我在练习中没有使用过Finagle和Akka,但我一直在阅读很多关于它们的内容.
Finagle是一个RPC系统而Akka是高度并发应用程序的工具包,为什么所有人都将它们作为两个可能无法一起使用的可能解决方案进行比较?我所做的所有搜索建议使用其中一个,没有人建议一起使用它们.
例如,Finagle有一种通过thrift和IDL定义端点的非常有趣的方法.使用此IDL,我们可以定义自定义端点,并通过scooge或任何代码生成工具,可以毫不费力地使用服务.此外,还会创建连接到此服务的客户端,并自动解决许多常见的客户端问题(重新连接,超时,重试,负载平衡,连接池,...).
相反,Akka解决了许多并发问题,并且在没有手动控制线程的所有复杂性的情况下,它可以非常好地扩展.
总结一下,为什么不一起使用它们?:
你怎么看?
注意:假设映射Futures和Promises的问题已得到解决,以及FuturePools和ExecutionContexts之间的不匹配.模式是将Finagle转换为使用Futures的scala方式.