【问题标题】:Why should I use gRPC instead of IPC / Simple websocket?为什么我应该使用 gRPC 而不是 IPC / Simple websocket?
【发布时间】:2017-05-22 05:04:45
【问题描述】:

我正在草拟一个微服务系统的架构,计划目前在一台机器上运行(也许将来会分发)。 该系统将由用 Node.js、GO 和 Java 编写的服务组成。 node.js 和 Java 都需要传递指令并从 GO 服务器接收结果。

现在,我正在尝试决定是使用 IPC 管道还是增加 gRPC 和 protobuff 并使用它们。

【问题讨论】:

  • 第一件事:节点是否有 grpc/protobuf 客户端库?如果不是,这个问题就没有实际意义了。

标签: java node.js go ipc grpc


【解决方案1】:

它们处于不同的抽象级别并具有不同的用途,因此问题中的“或”是错误的。 您将需要两种类型(传输和编码),即使您重新实现其中一种。

像匿名或命名管道一样的 IPC 通常被称为传输,它们无法编码多个指令或结果(尽管它们编码字节流)。

gRPC 和 protobuf 需要一种传输方式,支持多种传输方式并添加更细粒度的编码(如何表示整数、列表等),甚至可能更多。支持编码的技术通常可以与传输或编码嵌套,这在与 HTTP 一起使用的技术中很常见,这可能是有道理的,但可能只是添加了一层而没有使用。

【讨论】:

  • 感谢您的澄清 - 我想我需要重新措辞。
猜你喜欢
  • 2016-05-23
  • 1970-01-01
  • 2018-05-10
  • 2014-03-12
  • 2012-12-13
  • 2013-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多