【问题标题】:Communication between Node.js microservicesNode.js 微服务之间的通信
【发布时间】:2016-03-05 08:46:41
【问题描述】:

我正在使用微服务架构使用 Node.js 创建一个应用程序。我正在尝试找到节点之间的最佳通信方式。我有 Java 背景,所以我能想到的最佳选择是 SOAP,您可以在其中创建一个代理对象,并通过调用它的方法,通过 http 向远程节点发出请求。

目前我只看到像

这样的直接调用选项
http.get("remote-node/api/method1", function(res) {
}).on('error', function(e) {
  console.log("Got error: " + e.message);
});

但是我认为这不方便。有更好的方法吗?

谢谢。

【问题讨论】:

  • 有很多方法可以做到这一点——从简单的服务之间的 HTTP REST-ish 调用,到更高级的面向消息总线的架构。消息总线可以使服务位置和容错/重试等问题更容易。但我认为您可以做的最重要的事情是抽象出通信,以便您可以随着应用程序的增长替换它 - 从简单的东西开始并不断发展。
  • 据我了解微服务,在此架构中不建议使用消息总线。所有节点都需要处理它们的依赖关系和消息传递

标签: json node.js express architecture microservices


【解决方案1】:

最常见和最简单的方法是使用类似 REST 的方法与微服务进行通信,您必须手动进行通信和服务发现,随着系统的增长,这可能会变得混乱。您还可以在 npm 上搜索一些包,用于服务发现和远程过程调用。

我强烈建议使用Studio,它是一个微服务框架。它还有一个插件来进行自动集群化(服务发现 + rpc),配置非常少,这个插件还使用 websocket 进行通信,它比 rest-ish 方法更轻量级

【讨论】:

    猜你喜欢
    • 2016-06-10
    • 2018-01-22
    • 1970-01-01
    • 2021-06-20
    • 2016-08-10
    • 2019-01-18
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多