分布式服务架构简介(RPC原理)

分布式服务架构简介(RPC原理)

RPC简介

分布式应用架构(远程过程调用):当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。

 

什么叫RPC

RPC [ Remote Procedure Call]是指远程过程调用,是一种进程问通信方式,他是一种技术的思想,而不是规范。需要通过网络来表达调用的语义和传达调用的数据,它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。

 


RPC工作原理

分布式服务架构简介(RPC原理)

 

 


Client像调用本地服务似的调用远程服务;

Client stub(客户端助手)接收到需要调用远程方法后,将方法、参数序列化
客户端通过sockets将消息发送到服务端
Server stub(服务端助手) 收到消息后进行解码(将消息对象反序列化)
Server stub 根据解码结果调用服务端的服务
本地服务执行(对于服务端来说是本地执行)并将结果返回给Server stub
Server stub将返回结果打包成消息(将结果消息对象序列化)
服务端通过sockets将消息发送到客户端
Client stub接收到结果消息,并进行解码(将结果消息发序列化)
客户端得到最终结果。

RPC 调用分以下两种:
同步调用:客户方等待调用执行完成并返回结果。
异步调用:客户方调用后不用等待执行结果返回,但依然可以通过回调通知等方式获取返回结果。若客户方不关心调用返回结果,则变成单向异步调用,单向调用不用返回结果。

分布式服务架构简介(RPC原理)

上一篇:用C#表达式树优雅的计算24点


下一篇:建造者模式