从 nodejs 使用 akka 的最佳方式是什么

What is the best way to work with akka from nodejs

我有一个应用程序前端,在 angularjs + nodejs + express + socket.io 上实现。单独的服务中还有一项功能。这个服务是写在akka上的。

这是整个通信管道的样子:

[用户输入值] -> [angularjs 获取值并通过 socket.io 将其发送到 nodejs 服务器 -> [nodejs 接收值并将其传送到 akka] -> [akka 执行一些计算并 return 响应] -> [nodejs 接收响应并将其传送到 angularapp]

一个可能的解决方案是引入一个 MQ 中间件并将其用于交互,但这样 "message driven approach" 似乎是一种明显类似于 RPC 调用的开销。在 nodejs 和 akka 之间建立这种类型的通信的最佳方式是什么?

最简洁的方法是跳过 node.js/socket.io 消息层,而是直接使用 websockets 而不是 spray.io。 Typesafe 有一个激活器模板,仅适用于 websockets 到 akka actor 的场景:Spray and Websocket interfaces to actors

否则你会寻找某种 RPC 中间件,也许 Thrift or ZeroMQ

因为 Akka speaks HTTP 本身你可以从 Node 调用 RESTful 到 Akka 服务。支持流水线,因此您可以使其非常高效。在 Akka HTTP 服务器流程中,您使用询问模式从您的参与者那里获取计算值。