RPC调用

1.RPC调用、本地调用和HTTP调用

网络调用一般是基于HTTP协议进行调用,RPC是使用TCP或者UDP协议进行调用,效率上回更好;

常用的RPC框架有Thrift、GRPC等;

2.RPC的调用时序图

    1)调用方调用Proxy请求服务,并设置异步处理器handler;

    2)由代理类打包request,并在注册方(总线、路由等)获取服务提供方的地址,向目标服务方发起请求;

    3)由服务方找到对应的处理类和处理方法,并处理发送方请求;

    4)由服务方打包response,返回调用方;

 

设计成什么样的调用模型? 调用信息通过什么样的方式序列化?通过哪种协议传输?性能如何?可靠性如何? 分布式系统中最关注的问题:出现 failure 如何应对?如何容错? 更为全面的服务治理功能(如服务发现、负载均衡等)

服务代理。即实现一个服务接口,被调用端实现此服务接口,实现对应的方法逻辑,并写好 RPC 调用信息接收部分;调用端通过 RPC 模块获取一个服务代理实例,这个服务代理实例继承了服务接口并封装了相应的远程调用逻辑(包括消息的编码、解码、传输等)。调用端通过这个服务代理实例进行 RPC 调用。像 Vert.x Service Proxy 和 gRPC 都是这种模型。这样的 RPC 模块需要具备生成服务代理类的功能

直接调用,即设计特定的 API 用于 RPC 调用。比如 Golang 的 rpc 包,里面的 Client 就提供了一个 Call 方法用于任意RPC调用,调用者需要传入方法名称、参数以及返回值指针(异步模式下传入 callback handler)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值