远程调用框架RPC

RPC

参考理解地址:https://blog.csdn.net/veloi/article/details/111636500
RPC就是:远程调用框架(Remote Procedure Call)
远程调用意思就是:被调用方法的具体实现不在程序运行本地,而是在别的某个远程地方。

1,远程调用原理

比如 A (client) 调用 B (server) 提供的remoteAdd方法:

  1. 首先A与B之间建立一个TCP连接;
  2. 然后A把需要调用的方法名(这里是remoteAdd)以及方法参数(10, 20)序列化成字节流发送出去;
  3. B接受A发送过来的字节流,然后反序列化得到目标方法名,方法参数,接着执行相应的方法调用(可能是localAdd)并把结果30返回;
  4. A接受远程调用结果,输出30。

RPC框架就是把我刚才说的这几点些细节给封装起来,给用户暴露简单友好的API使用。
使用自定义的TCP协议,可以让请求报文体积更小,或者使用HTTP2协议,也可以很好的减少报文的体积,提高传输效率

2,socket

socket是RPC经常采用的通信手段之一,RPC是在Socket的基础上实现的,它比socket需要更多的网络和系统资源。除了Socket,RPC还有其他的通信方法,比如:http、操作系统自带的管道等技术来实现对于远程程序的调用。

3,php中流行的rpc框架

php的rpc框架有: phprpc,yar, thrift, gRPC, swoole, hprose。phprpc 和 yar 是目前听说和接触最多的了。(自己公司使用的是yaf框架:https://www.php.net/manual/zh/book.yaf.php

4,rpc和http区别及优缺点

参考地址:http://m.ccutu.com/244407.html

目前流行使用 thrift 4层协议

5,Thrift

Thrift提供跨语言的服务框架,这种跨语言主要体现在它对多种语言的编译功能的支持,用户只需要使用IDL描述好接口函数,只需要一条简单的命令,Thrift就能够把按照IDL格式描述的接口文件翻译成各种语言版本。

6,grpc

https://blog.csdn.net/weiwangchao_/article/details/82023191

7,grpc 和 Thrift 对比

https://blog.csdn.net/chengzhi0371/article/details/100788739

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值