这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记。
RPC概念
RPC(Remote Procedure Call)远程过程调用协议,一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议。RPC它假定某些协议的存在,例如TPC/UDP等,为通信程序之间携带信息数据。在OSI网络七层模型中,RPC跨越了传输层和应用层,RPC使得开发,包括网络分布式多程序在内的应用程序更加容易。
过程是业务处理、计算任务,即程序,就是调用本地方法一样调用远程的过程。
解决问题
函数映射、数据转换成字节流、网络传输。
优点
- 单一职责,有利于分工协作和运维开发
- 可扩展性强,资源使用率更优
- 故障隔离,服务的整体可靠性更高
使用场景
这里可以使用消息中间件MQ进行对比,在MQ中有消息队列queue,它可以存储消息RPC的特性:同步调用,对于需要等待返回结果的场景,可以使用RPC。消息中间件MQ的特性:异步单向的消息,不需要等待消息处理完成,如果需要同步得到结果的场景,RPC比较适合,当然RPC也适合在使用简单的场景中,它操作简单,基于接口,使用的方式模拟本地方法的调用,异步的方式编程比较复杂。
核心概念术语
- ①client:客户端
- ②server:服务端
- ③calls:请求
- ④replier:响应
- ⑤services:一个网络服务由一个或者多个远程程序集构成
- ⑥programs:一个远程程序实现一个或者多个远程过程
- ⑦procedures:过程、过程的参数、结果在程序协议说明书中定义说明
- ⑧version:为兼容程序协议变更,一个服务端可能支持多个版本的远程程序