grpc.Dial()是否创建http / 2连接?

时间:2019-03-27 08:00:34

标签: grpc grpc-go

我对grpc和http / 2有点困惑。据我了解,grpc是一个RPC框架,可以使用不同类型的传输方式,而http / 2只是其中一种传输方式。

在golang中,grpc.Dial()将创建与服务器的连接,grpc服务器由grpc#Server.Serve()创建。那么这是什么联系呢?那是http / 2连接吗?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用gRPC连接到服务器时,它确实建立了一个HTTP / 2连接,该连接可以在许多gRPC请求之间共享(通道概念)。

gRPC确实是一个基于HTTP / 2构建的RPC框架。默认情况下,它使用Protobufs作为序列化协议,但是可以自定义。

将gRPC视为HTTP / 2上的RPC应用程序层。引用FAQ: “ ... gRPC也是一组库,它们将在常见的HTTP库通常不提供的平台之间一致地提供更高级别的功能。此类功能的示例包括:

在应用层与流控制的交互 级联取消通话 负载平衡和故障转移 “