我没有在实践中使用过Finagle或Akka,但是我已经阅读了很多有关它们的内容。
Finagle是RPC系统,而Akka是高度并发应用程序的工具包,为什么所有人都将它们作为无法一起使用的两种可能的解决方案进行比较?我所做的所有搜索都建议使用一种或另一种,没有人建议同时使用它们。
例如,Finagle有一种非常有趣的方式,可以通过节俭及其IDL定义端点。使用此IDL,我们可以定义自定义终结点,并通过scooge或任何代码生成工具,可以毫不费力地获得服务。此外,还会创建一个连接到该服务的客户端,其中会自动解决许多常见的客户端问题(重新连接,超时,重试,负载平衡,连接池等)。
相反,Akka解决了许多并发性难题,并且伸缩性非常好,而没有手动控制线程的所有复杂性。
总结一下,为什么不一起使用它们:
你有什么感想?
注意:假定映射期货和承诺的问题已解决,并且FuturePools和ExecutionContexts之间不匹配。模式将是将Finagle转换为使用Future的scala方法。
您是正确的,因为服务发现和服务实现是相互关注的问题,我可以遵循您的论点,即对前者使用Finagle,对后者使用Akka。原则上,您可以将两者一起使用而无需寻求期货的全面统一,因为您只需要在消息中将服务的答复发送回请求的Actor,即,您需要在自己的基础上添加自己的小“ pipeTo ”模式。 Twitter期货。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句