我有一个应用程序前端,在angularjs + nodejs + express + socket.io上实现。这也是单独服务中的一项功能。这项服务是在akka上写的。
以下是整个通信管道的外观:
[用户输入值] - > [angularjs获取值并通过socket.io将其发送到nodejs服务器] - > [nodejs接收该值并将其引导至akka] - > [akka执行一些计算并返回回复] - > [nodejs接收响应并将其引导至angularapp] 。
一种可能的解决方案是引入MQ中间件并将其用于交互,但这种"消息驱动方法"对于看起来像RPC调用的东西来说,这似乎是一种开销。在nodejs和akka之间建立这种类型的通信的最佳方法是什么?
答案 0 :(得分:8)
从https://stackoverflow.com/a/25575634/919426本身开始,您可以从Node到Akka服务进行RESTful调用。支持流水线操作,因此您可以提高效率。在Akka HTTP服务器流程中,您可以使用ask模式从演员那里获取计算出的值。
答案 1 :(得分:5)
最简单的方法是跳过node.js
/ socket.io
的消息传递层,而不是直接使用spray.io
上的websockets。 Typesafe有一个激活器模板,仅用于指向akka actor的websockets场景:Spray and Websocket interfaces to actors