搞懂分布式RPC开源框架-gRPC

搞懂分布式RPC开源框架-gRPC
 rpc解决了什么问题,与消息队列应用场景比较
 rpc(远程调用方法):请求回应
 socket网络问题 ------> 消除端到端交互问题
业务场景:
 rpc:同步地处理
 消息队列:不紧迫的非必要的 异步解决问题 ,比如短信服务。
- grpc组成和service API
 grpc 组成:http 2.0 + protobuffer
 http1.0 提供长连接 请求回应的模式
 http1.1 pipeline 可以发送多个请求得到多个回应
 http2.0 stream 传输的 可以想回应的时候,回应。随时随地,采用分帧
分布式系统采用不同的语言,要跨语言(c++x)、解压缩要快、数据流小(json、xml x)、msgpack要压缩kv、protobuffer只压缩v;
 
 对于整数极大的压缩
 
 grpc service API
 1 、unary api 一元普通模式:
 一个请求,一个回应
 
2、client stream api客户端流模式
 多个请求,一个回应,服务端会将多个请求汇总成一个流;
 
3、server stream api服务端流模式
 serve端任务繁重,一个请求会有多个返回
 
4、bidirectional stream api 双端流
 多个请求,多个返回值
 
 C++: 同步阻塞的调用异步非阻塞的调用(callback)
- grpc关键特性:超时、重试、拦截器、命名解析、负载均衡、安全连接


