1.安装包

pip3.6 install grpcio grpcio-tools protobuf

2.RPC简介

2.1 RPC是什么

  • RPC(Remote Procedure Call)是远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
  • 举例:在A服务器内,调用B服务器的ticket服务器中的get方法,那么在A服务器中,直接调用B.ticket.get()来直接调用\

2.2 gRPC是什么

  • grpc是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。
  • grpc提高在一种简单的方法来精确的定义服务为ios,Android和后台支撑服务自动生成可靠性很强的客户端功能库,客户端充分利用高级流和链接功能,从而有助于节省带宽,降低tcp链接次数,节省cpu使用和电池寿命

2.3 gRPC和restful对比

2.4 gRPC 的传输方式

  • unary 单程
  • stream 流形式
    • 双向 客户端请求服务器端(流), 服务器端返回给客户端(流)
    • 单休 服务器端接受客户端(流),服务器端返回客户端(非流)
    • 单休 服务器端接受客户端(非流),服务器端send客户端(流)

2.5 gRPC code码

code 名词 解释
0 ok 成功
1 Canceled 取消操作
2 Unknown 未知错误
3 InvalidArgument 客户端传入参数有误
4 DeadlineExceeded 超时
5 NotFound 找不到资源
6 AlredyExists 资源已存在
7 PermissionDenied 无相关权限
8 RsourceExhausted 资源耗尽
9 FailedPrecondition 操作拒绝
10 Aborted 终止操作
11 OutOfRange 超过有效范围
12 Unimplemented 未执行或未支付的操作
13 Internal 发生了一些意外(逻辑出现问题)
14 Unavailable 服务不可用
15 DataLoss 数据丢失 不可恢复
16 Unauthenticated 无有效的认证