我正在为微服务系统绘制架构,计划在一台机器上运行(可能在将来分发)。 系统将由Node.js,GO编写的服务组成,可能是Java。 node.js和Java都需要传递指令并从GO服务器接收结果。
现在,我试图决定是否应该使用IPC管道或者使用gRPC和protobuff并使用它们。
答案 0 :(得分:0)
这些在不同的抽象级别上有不同的用途,因此'或'在这个问题上是错误的。 您将需要两种类型(传输和编码),即使您重新实现其中一种类型。
IPC就像一个匿名或命名管道通常被称为传输,它们无法编码多个指令或结果(尽管它们编码一个字节流)。
gRPC和protobuf需要一个传输,支持多个传输并添加更精细的编码(如何表示整数,列表等)以及可能更多的顶部。支持编码的技术通常可以使用传输或编码嵌套,这在与HTTP一起使用的技术中很常见,这可能有意义,但可能只添加一个层而无需使用。