grpc基本概念 | 青训营笔记

221 阅读2分钟

gRPC(gRPC Remote Procedure Call)是一种高性能、跨语言的远程过程调用(RPC)框架,由Google开发并开源。它使用Protocol Buffers作为接口定义语言(IDL)并支持多种编程语言,如C++, Java, Python, Go, Ruby等。

以下是gRPC的一些基本概念:

  1. RPC(Remote Procedure Call):RPC是一种通信协议,用于不同计算机或进程之间的远程通信。它允许像调用本地函数一样调用远程服务器上的函数。
  2. 服务定义:在gRPC中,服务定义使用Protocol Buffers(简称Proto)编写。Proto是一种语言无关的二进制序列化格式,用于定义数据结构和服务接口。
  3. 服务接口:服务接口定义了可以通过RPC调用的方法及其参数和返回类型。它由Proto文件中的服务定义部分定义。
  4. 客户端和服务器:在gRPC中,客户端和服务器是指使用gRPC进行通信的两个角色。客户端发起RPC调用请求,而服务器接收请求并提供相应的响应。
  5. 通信协议:gRPC使用HTTP/2作为底层的通信协议。HTTP/2提供了更高效的传输和多路复用功能,可以同时处理多个RPC调用。
  6. 序列化:gRPC使用Protocol Buffers进行数据的序列化和反序列化。Proto文件定义了消息的结构,gRPC会自动生成相应的代码来处理序列化和反序列化操作。
  7. 流式传输:gRPC支持两种类型的流式传输:单向流和双向流。单向流允许客户端或服务器通过流发送多个消息,而双向流则允许客户端和服务器同时通过流进行交互。
  8. 安全性:gRPC提供了可选的安全性支持,可以使用SSL/TLS来保护通信。这可以确保通信的机密性和完整性。

总之,gRPC是一个基于IDL、高性能、跨语言的RPC框架,使用Protocol Buffers进行序列化,通过HTTP/2进行通信,支持多种类型的流式传输,并提供可选的安全性支持。它被广泛用于构建分布式系统和微服务架构。