RPC讲解

RPC Remote Protocal Call

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

支持多语言的 RPC 框架
Google 的 gRPC,当前支持 C、Java 和 Go 语言
Apache(Facebook)的 Thrift
支持特定语言的 RPC 框架
新浪微博的 Motan
阿里的 Dubbo

gRPC
通信协议基于标准的 HTTP/2 设计
序列化支持 PB(Protocol Buffer)和 JSON

服务端:
proto将服务接口实现类实例注册到 gRPC 内部的服务注册中心上,请求消息接入之后,可以根据服务名和方法名,直接调用启动时注册的服务实例,而不需要通过反射的方式进行调用,性能更优。

调用流程
gRPC 的客户端请求消息由 Netty Http2ConnectionHandler 接入,
由 gRPC 负责将 PB 消息(或者 JSON)反序列化为 POJO 对象,
然后通过服务定义查询到该消息对应的接口实例,
发起本地 Java 接口调用,调用完成之后,将响应消息反序列化为 PB(或者 JSON),
通过 HTTP2 Frame 发送给客户端。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值