竹笋

首页 » 问答 » 问答 » rpc是什么php中流行的rpc框架有哪
TUhjnbcbe - 2022/2/20 14:35:00
什么是rpc框架

先回答第一个问题:什么是RPC框架?如果用一句话概括RPC就是:远程调用框架(RmotProcdurCall)

那什么是远程调用?

通常我们调用一个php中的方法,比如这样一个函数方法:localAdd(10,20),localAdd方法的具体实现要么是用户自己定义的,要么是php库函数中自带的,也就说在localAdd方法的代码实现在本地,它是一个本地调用!

远程调用意思就是:被调用方法的具体实现不在程序运行本地,而是在别的某个远程地方。

远程调用原理

比如A(clint)调用B(srvr)提供的rmotAdd方法:

首先A与B之间建立一个TCP连接;

然后A把需要调用的方法名(这里是rmotAdd)以及方法参数(10,20)序列化成字节流发送出去;

B接受A发送过来的字节流,然后反序列化得到目标方法名,方法参数,接着执行相应的方法调用(可能是localAdd)并把结果30返回;

A接受远程调用结果,输出30。

RPC框架就是把我刚才说的这几点些细节给封装起来,给用户暴露简单友好的API使用。

远程调用的好处

解耦:当srvr需要对方法内实现修改时,clint完全感知不到,不用做任何变更;这种方式在跨部门,跨公司合作的时候经常用到,并且方法的提供者我们通常称为:服务的暴露。

RPC与Sockt有什么区别?

通过上面的简单阐述,好像RPC与Sockt好像啊。都是调用远程的方法,都是clint/srvr模式,我之前也写了一篇文章:细说sockt那他们有啥区别呢?

RPC(远程过程调用)采用客户机/服务器模式实现两个进程之间相互通信。sockt是RPC经常采用的通信手段之一,RPC是在Sockt的基础上实现的,它比sockt需要更多的网络和系统资源。除了Sockt,RPC还有其他的通信方法,比如:

1
查看完整版本: rpc是什么php中流行的rpc框架有哪