根据这个维基百科条目:
“Protocol Buffers 与 Facebook 的 Thrift 协议非常相似,只是它不包含用于定义服务的具体 RPC 堆栈。由于 Protocol Buffers 是开源的,因此出现了许多 RPC 堆栈来填补这一空白。”
但是,没有引用 RPC 堆栈的示例。任何人都可以建议一个基于 Java 的 RPC 堆栈实现吗?
根据这个维基百科条目:
“Protocol Buffers 与 Facebook 的 Thrift 协议非常相似,只是它不包含用于定义服务的具体 RPC 堆栈。由于 Protocol Buffers 是开源的,因此出现了许多 RPC 堆栈来填补这一空白。”
但是,没有引用 RPC 堆栈的示例。任何人都可以建议一个基于 Java 的 RPC 堆栈实现吗?
如果你想要基于 Java 的 RPC 堆栈,那就是RMI。但是,它不能很好地跨平台运行。
我一直在使用 ProtoBuf 做 RPC。您几乎可以通过将 protobuf 消息包装在另一个 protobuf 中来模拟 RPC 堆栈,该 protobuf 定义了服务或调用。有关详细信息,请查找我对此问题的答案,
如果您想支持更多平台,如 PHP、Ruby、C# 等,Thrift 看起来是一个很好的选择。但是,与 ProtoBuf 相比,它对我来说看起来非常复杂。
Google 已经开源了他们的 RPC 框架gRPC,它使用 Protocol Buffers 来定义服务和消息。gRPC 是跨平台的,支持 C、C++、C#、Java、Go、Node.js、Python、Ruby、Objective-C 和 PHP。
gRPC 基于 HTTP/2 标准,支持双向流式传输、流控制、标头压缩和多路复用连接等新功能。