初探gRPC

2023-03-03 19:33:30 浏览数 (2)

背景

随着微服务框架和云原生框架的出现,传统的单体应用程序被分解为一组细粒度的、自治的和面向业务能力的微服务,网络通信链路的数量激增,服务间的通信技术也因此成为了现代分布式系统中至关重要的一个环节。

目前,我们在应用开发中,最常用的通信方式是构建一个ResutFul服务,通过http协议进行服务调用,然后再比较多的场景下,restful服务对于构建进程间通信来讲过于庞大,低效并且容易出错,因为需要一个比restful服务更高效的高可扩展,松耦合的进程间通信技术,隐藏,诞生了gRPC,一种用于构建分布式应用程序和微服务的现代进程通信方式。

什么是gRPC

gRPC是一种进程间通信技术。在 gRPC 中,客户端可以直接调用不同机器上的服务端的方法,就像调用本地函数一样。

与许多 RPC 系统一样,gRPC 基于定义服务的思想,指定可以远程调用的接口及其参数和返回类型。服务端实现这个接口并运行一个 gRPC 服务器来处理客户端调用。而客户端有一个stub(在某些语言中也称为client),它提供与服务器相同的方法。客户端通过调用stub的方法来与服务端进行通信,获取响应结果。

下图为开发gRPC应用的一个示例:

  1. 首先,需要定义一个服务接口,定义了包含有关客户端如何使用你的服务,允许客户端调用方法等等一系列的信息,一般是通过protocol buffer来定义服务接口的。
  2. 定义好接口之后,可以使用protoc工具生成服务端代码,它通过提供低价

    0 人点赞