Node.js 微服务之间的通信

3
我正在使用微服务架构创建一个Node.js应用程序。我正在尝试找到节点之间最好的通信方式。由于我的Java背景,我可以想象的最佳选项是类似SOAP的东西,您可以创建代理对象,并通过调用其方法来通过http向远程节点发出请求。
目前我只看到直接调用的选项,例如:
http.get("remote-node/api/method1", function(res) {
}).on('error', function(e) {
  console.log("Got error: " + e.message);
});

然而,我认为这并不方便。是否有更好的解决方案?谢谢。

4
有许多方法可以做到这一点 - 从像服务之间的HTTP REST-ish调用这样简单的方式,到像消息总线导向架构这样更高级的方式。消息总线可以使诸如服务定位和容错/重试等问题更容易处理。但我认为你能做的最重要的事情是抽象通信,以便在应用程序增长时可以替换它 - 从简单开始并逐步发展。 - StianE
就我所了解的微服务,使用消息总线在这种架构中并不推荐。所有节点都需要注意它们的依赖关系和消息传递。 - akardon
1个回答

2
最常见且简单的方法是使用 REST-ish 方法在微服务之间进行通信。您需要手动进行通信和服务发现,随着系统的增长,这可能会变得混乱不堪。您也可以在 npm 上搜索一些用于服务发现和远程过程调用的包。
我建议使用 Studio,它是一个微服务框架。它还具有插件,可通过最小配置进行自动集群化(服务发现 + rpc)。此插件还使用 WebSockets 进行通信,比 REST-ish 方法更轻量级。

免责声明:您似乎是链接存储库的所有者。 - OneCricketeer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接