gRPC简单学习了解

=Start=

缘由:

简单记录一下学习和了解gRPC相关的概念和知识点的内容,方便以后参考。

正文:

参考解答:
1、RPC框架原理

RPC 框架的目标就是让远程服务调用更加简单、透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(xml/json/ 二进制)和通信细节。让服务调用者可以像调用本地接口一样调用远程的服务提供者,而不需要关心底层通信细节和具体调用过程。

RPC 框架的调用原理图如下所示:

2、gRPC简介

gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。

gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。

3、gRPC的常规使用方法

gRPC的使用通常包括如下几个步骤:

①通过protobuf来定义接口和数据类型
②使用protobuf编译器生成创建应用所需的特定客户端和服务端的代码
③编写gRPC server端代码
④编写gRPC client端代码


下面以Python为例简单过一遍环境准备&代码开发的流程:

# 首先确保你的 pip 是 9.0.1 或以上版本
$ python -m pip install --upgrade pip

# 然后安装VirtualENV创建测试环境,避免对系统环境产生影响
$ python -m pip install virtualenv
$ virtualenv venv
$ source venv/bin/activate
$ python -m pip install --upgrade pip

# 安装gRPC
$ python -m pip install grpcio

# 安装gRPC tools
$ python -m pip install grpcio-tools

&

# 编写 .proto 文件(包含 syntax/service/message 等几个简单必要字段就行)
## .proto 文件中的 service 和 message 名称会对下面的 server/client 端代码编写有影响,记得一一对应

# 借助gRPC的编译工具生成相关代码(xxx_pb2.py 和 xxx_pb2_grpc.py)
$ python -m grpc_tools.protoc -I../../protos --python_out=. --grpc_python_out=. ../../protos/helloworld.proto

# 编写 gRPC 的 server 端代码(需要对其中的模式有一定了解,好在编码时import需要的模块及其相关的类)

# 编写 gRPC 的 client 端代码(需要对常规的编码流程有一定了解)

# 先启动 server 端,再在另一个终端中启动 client 端以进行测试
参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/4576.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注