Eli's Blog

1. gRPC 回顾总结

1.1 gRPC

1
go get -u google.golang.org/grpc
  • 强大的 IDL,使用 Protocol Buffers 作为数据交换格式
  • 跨语言、跨平台
  • 支持HTTP2,双向传输、多路复用、认证等

grpc下常用包:

  • metadata: 提供方法对 grpc 元数据结构MD 进行获取和处理
  • credentials: 封装了客户端对服务端进行身份验证所需的所有状态,并做出各种断言
  • codes: grpc 标准错误码

1. RPC

1.1 什么是RPC

RPC: Remote Procedure Call,远程过程调用。调用过程包括传输协议和对象编码(序列化)。

1.2 RPC框架

  • 负载均衡
  • 服务注册和发现
  • 服务治理

1.3 为什么使用RPC

简单、通用、安全、效率

1. RPC

  • 客户端(client): 服务调用的发起方
  • 客户端存根(client Stub):
    • 运行在客户端机器上
    • 存储调用服务器地址
    • 将客户端请求数据信息打包
    • 通过网络发给服务端存根程序
    • 接收服务端响应的数据包,解析后给客户端
  • 服务端(server): 服务提供者
  • 服务端存根(server Stub):
    • 存在与服务端机器上
    • 接收客户端Stub程序发送来请求消息数据包
    • 调用服务端的程序方法
    • 将结果打包成数据包发给客户端Stub程序