gRPC(1)- gRPC 简介

概述

在 gRPC 中,客户端应用程序可以直接调用不同机器上的服务器应用程序上的方法,就像它是本地对象一样,使您可以更轻松地创建分布式应用程序和服务。与许多 RPC 系统一样,gRPC 基于定义服务的思想,指定可以通过参数和返回类型远程调用的方法。在服务器端,服务器实现了这个接口并运行一个 gRPC 服务器来处理客户端调用。在客户端,客户端有一个存根(在某些语言中简称为客户端),它提供与服务器相同的方法。

 

gRPC 客户端和服务器可以在各种环境中运行和相互通信 - 从 Google 内部的服务器到您自己的桌面 - 并且可以用任何 gRPC 支持的语言编写。因此,例如,您可以轻松地使用 Java、Go、Python 或 Ruby 中的客户端创建一个 gRPC 服务器。此外,最新的 Google API 将具有其接口的 gRPC 版本,让您可以轻松地将 Google 功能构建到您的应用程序中。

使用协议缓冲区

默认情况下,gRPC 使用协议缓冲区,谷歌成熟的用于结构化数据序列化的开源机制(虽然它可以与其他数据格式如JSON一起使用)。这是它如何工作的快速介绍。如果您已经熟悉协议缓冲区,请随时跳到下一节。

使用协议缓冲区的第一步是定义要在proto 文件中序列化的数据的结构:这是一个带有.proto扩展名的普通文本文件。协议缓冲区数据被构造为 消息,其中每条消息都是一个小的信息逻辑记录,包含一系列称为字段的名称-值对。这是一个简单的例子:

message Person {
  string name = 1;
  int32 id = 2;
  bool has_ponycopter = 3;
}

然后,一旦指定了数据结构,就可以使用协议缓冲区编译器protoc从原型定义中生成首选语言的数据访问类。这些为每个字段提供了简单的访问器,如name()set_name(),以及将整个结构序列化/解析为原始字节/从原始字节序列化/解析整个结构的方法。因此,例如,如果您选择的语言是 C++,则在上面的示例中运行编译器将生成一个名为Person. 然后,您可以在应用程序中使用此类来填充、序列化和检索Person协议缓冲区消息。

您在普通的 proto 文件中定义 gRPC 服务,将 RPC 方法参数和返回类型指定为协议缓冲区消息:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值