![](/img/trans.png)
[英]What is the difference between net/rpc package of Golang and gRPC framework?
[英]What is the difference between grpc-gateway vs Twirp RPC
我们已经有了提供 rpc 和 rest 端点的Twrip-RPC 。 那么为什么我们需要grpc-Gateway 。 与 twirp 相比,它提供了哪些优势。 是不是我们可以为 grpc 网关提供自定义端点是唯一的区别。 Twrip-rpc 不能做什么 grpc-gateway?
Twirp 和 gRPC 网关类似。 他们都根据 protobuf 文件定义构建 API 服务。
主要区别:
我自己没有使用过 Twirp,但对我来说,它似乎使用 JSON 编解码器而不是二进制 Protobuf 编解码器,而它仍然充当 RPC。 您在/twirp/MyService/SayHello
等端点上使用 HTTP POST
和 JSON 有效负载并收到 JSON 响应。 除了 JSON 之外,与标准 gRPC 非常相似。
对于 gRPC 网关,它有点不同。 在这里,您可以在现有 gRPC 服务上配置任何 HTTP REST 端点。 例如, MySevice.SayHello
可以 map GET /hello
。 这使得在 gRPC 定义之上实现完整的 REST 服务变得非常容易。
希望这能澄清一下。
要使用 Go RPC 的 RPC 框架生成 RPC 支架,我们可以从一开始就考虑 gRPC 或寻找更简单的 Twitch RPC,即Twirp 。
选择 Twirp 而不是 gRPC 的常见原因如下:
gRPC over Twirp 的原因是:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.