2

我们已经有了提供 rpc 和 rest 端点的Twrip-RPC 。那么为什么我们需要 grpc-Gateway。与 twirp 相比,它提供了哪些优势。是不是我们可以为 grpc 网关提供自定义端点是唯一的区别。Twrip-rpc 不能做什么 grpc-gateway?

4

3 回答 3

1

Twirp 和 gRPC 网关类似。他们都从 protobuf 文件定义中构建 API 服务。

主要区别:

  • gRPC 仅在 HTTP2 上使用 protobuf,这意味着浏览器无法轻松地直接与基于 gRPC 的服务通信。
  • Twirp 在 Protobuf 和 JSON、HTTP 1.1 和 HTTP2 上工作,因此任何客户端都可以轻松通信。
  • gRPC 是一个具有许多功能的完整框架。很强大的东西。
  • Twirp 很小很小。只有一些基本功能,但它更容易管理。
于 2021-05-04T22:48:13.230 回答
0

除了二进制 Protobuf 编解码器之外,Twirp 还支持 JSON 编码的请求和响应,但它仍然充当 RPC。POST您可以在端点上使用 HTTP ,例如/twirp/MyService/SayHello使用 JSON 有效负载并接收 JSON 响应。除了可选的 JSON 之外,与标准 gRPC 非常相似。

对于 gRPC 网关,它有点不同。在这里,您可以在现有 gRPC 服务上配置任何 HTTP REST 端点。例如,MySevice.SayHello可以映射到GET /hello. 这使得在 gRPC 定义之上实现完整的 REST 服务变得非常容易。

希望这能澄清一下。

于 2020-10-06T18:43:36.883 回答
0

要使用 Go RPC 的 RPC 框架生成 RPC 脚手架,我们可以从一开始就考虑 gRPC 或寻找更简单的 Twitch RPC,即Twirp

选择 Twirp 而不是 gRPC 的常见原因如下:

  • Twirp 带有 HTTP 1.1 支持。
  • Twirp 支持 JSON 传输。
  • gRPC 在 net/http 之外重新实现了 HTTP/2。

gRPC over Twirp 的原因是:

  • gRPC 支持流式传输。
  • gRPC 做出了电线兼容性承诺。
  • 网络级别的更多功能。
于 2021-05-05T14:02:25.773 回答