【发布时间】:2015-06-06 21:51:16
【问题描述】:
我有一个应用程序前端,在 angularjs + nodejs + express + socket.io 上实现。单独的服务中还有一个功能。这个服务是写在akka上的。
这是整个通信管道的外观:
[用户输入值] -> [angularjs 获取值并通过 socket.io 将其发送到 nodejs 服务器] -> [nodejs 接收值并将其引导至 akka] -> [akka 执行一些计算并返回响应] -> [nodejs 接收响应并将其引导至 angularapp] .
一种可能的解决方案是引入一个 MQ 中间件并将其用于交互,但这种“消息驱动的方法”对于看起来像 RPC 调用的东西来说似乎是一种开销。在 nodejs 和 akka 之间建立这种类型的通信的最佳方式是什么?
【问题讨论】:
-
你可以使用 edge.js 和 akka.net
-
我不明白你在问什么。如果消息通过 socket.io 来自客户端,那么您只需在服务器端 socket.io 代码中定义消息处理程序,然后在收到发往该服务的消息时适当地调用您的 akka 服务。那是与您似乎选择的架构一致的方法。当然,如果 nodejs 在这些数据中根本没有真正发挥作用,没有什么说你必须通过 nodejs 来做到这一点。浏览器可以通过 socket.io 或 ajax 通过不同的端口直接与您的服务通信。
-
@jfriend00 没错。问题是如何调用akka。我立即想到的一种方法是简单地将消息发布到某个 MQ 并最终从另一个队列中获得响应,但这似乎并不有效——因为我们必须定义两个队列来执行请求 /回应....还有其他更有效的方法吗?
标签: node.js scala express akka