PHP中哪些流行的RPC框架值得详解?

更新于
2026-09-28 19:09:04
1阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1742个文字,预计阅读时间需要7分钟。

PHP中哪些流行的RPC框架值得详解?

目录- 什么是RPC框架?- 远程调用原理- 远程调用的好处- RPC与Socket的区别- RPC与REST的区别- PHP中流行的RPC框架有哪些?- phprpc- 安装- 开始使用- yar- 下载安装- 开始使用- 什么是RPC框架?什么是RPC框架?RPC(Remote Procedure Call)即远程过程调用,是一种允许程序在不同的地址空间(通常是在不同的地址上)执行过程的协议。RPC框架提供了一种机制,使得一个程序可以像调用本地函数一样调用远程服务器上的函数。

远程调用原理远程调用原理远程调用通过封装网络通信过程,使得客户端可以像调用本地方法一样调用远程服务。它通常涉及以下步骤:

1.客户端发送调用请求。

2.服务器接收请求并执行远程方法。

3.服务器将结果返回给客户端。

远程调用的好处

远程调用的好处- 提高代码复用性。- 分解系统,便于管理和扩展。- 简化分布式系统开发。

RPC与Socket的区别RPC与Socket的区别- RPC提供了一种抽象的调用方式,隐藏了网络通信的复杂性。- Socket直接操作网络协议,需要处理底层的通信细节。

RPC与REST的区别RPC与REST的区别- RPC通过定义一套协议进行远程调用,通常使用二进制格式。- REST基于HTTP协议,使用JSON或XML等格式进行数据交换。

PHP中流行的RPC框架有哪些?PHP中流行的RPC框架有哪些?- phprpc- yar

phprpcphprpcphprpc是一个轻量级的PHP RPC框架,支持多种通信协议。

安装安装bashcomposer require phprpc/phprpc

开始使用开始使用php// 服务器端$server=new phprpc\Server();$server->register('hello', 'HelloWorld::sayHello');$server->run();

// 客户端$client=new phprpc\Client('http://127.0.0.1:1234');echo $client->hello('world');

yaryaryar是一个高性能的PHP RPC框架,支持多种序列化格式。

下载安装下载安装bashcomposer require yar/yar

开始使用开始使用php// 服务器端$server=new yar\Server();$server->handle('HelloWorld::sayHello');

// 客户端$client=new yar\Client('tcp://127.0.0.1:1234');echo $client->sayHello('world');

目录
  • 什么是RPC框架?
  • 远程调用原理
  • 远程调用的好处
  • RPC与Socket有什么区别?
  • RPC与REST有什么区别?
  • php中流行的rpc框架有哪些
    • phprpc
    • 安装
  • 开始使用
    • yar
      • 下载安装
      • 开始使用

    什么是RPC框架?

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

    远程调用原理

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

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

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

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

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

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

    远程调用的好处

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

    RPC与Socket有什么区别?

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

    PHP中哪些流行的RPC框架值得详解?

    RPC(远程过程调用)采用客户机/服务器模式实现两个进程之间相互通信。socket是RPC经常采用的通信手段之一,RPC是在Socket的基础上实现的,它比socket需要更多的网络和系统资源。除了Socket,RPC还有其他的通信方法,比如:127.0.0.1/server.php'); echo $client->HelloWorld(); ?>

    我们在执行以下client.php,如愿以偿的输出了:

    Hello Word!

    这样一个简单的Server/Clent交付就搞定了。虽然中间出了点差错,但是总体来说还是蛮简单易懂的!

    其他的更高级的用法可以参考官网的。

    yar

    yar 是国内著名的php大神鸟哥惠新宸的大作,在微博产品中已经开始使用。它也是一款rpc框架。它由于使用纯C编写的用于php的扩展,所以,效率应该是蛮高的,而且支持异步并行,这点还是赞的。

    下载安装

    官网下载:pecl.php.net/package/yar最新的版本 yar-1.2.4.tgz

    然后解压复制到php源码的etx目录:/lamp/php-5.4.11/ext下。然后用phpize进行扩展重新编译。

    [root@localhost yar-1.2.4]# /usr/local/php/bin/phpize

    [root@localhost yar-1.2.4]# ./configure --with-php-config=/usr/local/php/bin/php-config

    但是出现了点问题:提示,curl 有问题:

    configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/

    估计是我本机curl 有问题,那用yum 安装一下吧:

    yum -y install curl-devel

    安装完成curl 后继续编译安装,就没啥问题了:

    [root@localhost yar-1.2.4]# /usr/local/php/bin/phpize

    [root@localhost yar-1.2.4]# ./configure --with-php-config=/usr/local/php/bin/php-config

    [root@localhost yar-1.2.4]# make && make install

    成功之后,提示我们 yar.so 扩展在已经在/usr/local/php/lib/php/extensions/no-debug-zts-20100525/ 下了。

    我们vi编辑一下 php.ini ,最后面加上yar.so扩展,然后重启一下 apache 或者php-pfm就可以了。

    [root@localhost /]# vi /usr/local/php/etc/php.ini 

    [yar]

    extension=yar.so

    好。加好了后,我们需要重启下apache或者php-fpm

    重启apache

    [root@localhost /]# /usr/local/apache/bin/apachectl restart

    平滑重启php-fpm

    kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

    重启完毕后,打开phpinfo()页面,搜索一下,应该就能够看到yar了。

    开始使用

    和其他的rpc框架一样,yar也是server/client模式,所以,我们也一样,开始写一个简单的例子来说下如何调用。

    yar_server.php表示服务器端

    <?php class API { public function api($parameter, $option = "foo") { return $parameter; } protected function client_can_not_see() { } } $service = new Yar_Server(new API()); $service->handle();

    好,我们在浏览器里运行一下,就会出现如下图所示的输出。很高端啊!!!鸟哥说这样做的用途是可以一目了然的知道我这个rpc提供了多少接口,把api文档都可以省略了。

    好,我们开始写yar_client.php 这个是客户端:

    $client = new Yar_Client("127.0.0.1/yar_server.php"); echo $client->api('helo word');

    像其他的 swoole,hprose等基本都是这个原理,只是看谁的功能更加,用起来更顺手罢了。

    以上就是详解php中流行的rpc框架的详细内容,更多关于php中流行的rpc框架的资料请关注自由互联其它相关文章!

    本文共计1742个文字,预计阅读时间需要7分钟。

    PHP中哪些流行的RPC框架值得详解?

    目录- 什么是RPC框架?- 远程调用原理- 远程调用的好处- RPC与Socket的区别- RPC与REST的区别- PHP中流行的RPC框架有哪些?- phprpc- 安装- 开始使用- yar- 下载安装- 开始使用- 什么是RPC框架?什么是RPC框架?RPC(Remote Procedure Call)即远程过程调用,是一种允许程序在不同的地址空间(通常是在不同的地址上)执行过程的协议。RPC框架提供了一种机制,使得一个程序可以像调用本地函数一样调用远程服务器上的函数。

    远程调用原理远程调用原理远程调用通过封装网络通信过程,使得客户端可以像调用本地方法一样调用远程服务。它通常涉及以下步骤:

    1.客户端发送调用请求。

    2.服务器接收请求并执行远程方法。

    3.服务器将结果返回给客户端。

    远程调用的好处

    远程调用的好处- 提高代码复用性。- 分解系统,便于管理和扩展。- 简化分布式系统开发。

    RPC与Socket的区别RPC与Socket的区别- RPC提供了一种抽象的调用方式,隐藏了网络通信的复杂性。- Socket直接操作网络协议,需要处理底层的通信细节。

    RPC与REST的区别RPC与REST的区别- RPC通过定义一套协议进行远程调用,通常使用二进制格式。- REST基于HTTP协议,使用JSON或XML等格式进行数据交换。

    PHP中流行的RPC框架有哪些?PHP中流行的RPC框架有哪些?- phprpc- yar

    phprpcphprpcphprpc是一个轻量级的PHP RPC框架,支持多种通信协议。

    安装安装bashcomposer require phprpc/phprpc

    开始使用开始使用php// 服务器端$server=new phprpc\Server();$server->register('hello', 'HelloWorld::sayHello');$server->run();

    // 客户端$client=new phprpc\Client('http://127.0.0.1:1234');echo $client->hello('world');

    yaryaryar是一个高性能的PHP RPC框架,支持多种序列化格式。

    下载安装下载安装bashcomposer require yar/yar

    开始使用开始使用php// 服务器端$server=new yar\Server();$server->handle('HelloWorld::sayHello');

    // 客户端$client=new yar\Client('tcp://127.0.0.1:1234');echo $client->sayHello('world');

    目录
    • 什么是RPC框架?
    • 远程调用原理
    • 远程调用的好处
    • RPC与Socket有什么区别?
    • RPC与REST有什么区别?
    • php中流行的rpc框架有哪些
      • phprpc
      • 安装
    • 开始使用
      • yar
        • 下载安装
        • 开始使用

      什么是RPC框架?

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

      远程调用原理

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

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

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

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

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

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

      远程调用的好处

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

      RPC与Socket有什么区别?

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

      PHP中哪些流行的RPC框架值得详解?

      RPC(远程过程调用)采用客户机/服务器模式实现两个进程之间相互通信。socket是RPC经常采用的通信手段之一,RPC是在Socket的基础上实现的,它比socket需要更多的网络和系统资源。除了Socket,RPC还有其他的通信方法,比如:127.0.0.1/server.php'); echo $client->HelloWorld(); ?>

      我们在执行以下client.php,如愿以偿的输出了:

      Hello Word!

      这样一个简单的Server/Clent交付就搞定了。虽然中间出了点差错,但是总体来说还是蛮简单易懂的!

      其他的更高级的用法可以参考官网的。

      yar

      yar 是国内著名的php大神鸟哥惠新宸的大作,在微博产品中已经开始使用。它也是一款rpc框架。它由于使用纯C编写的用于php的扩展,所以,效率应该是蛮高的,而且支持异步并行,这点还是赞的。

      下载安装

      官网下载:pecl.php.net/package/yar最新的版本 yar-1.2.4.tgz

      然后解压复制到php源码的etx目录:/lamp/php-5.4.11/ext下。然后用phpize进行扩展重新编译。

      [root@localhost yar-1.2.4]# /usr/local/php/bin/phpize

      [root@localhost yar-1.2.4]# ./configure --with-php-config=/usr/local/php/bin/php-config

      但是出现了点问题:提示,curl 有问题:

      configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/

      估计是我本机curl 有问题,那用yum 安装一下吧:

      yum -y install curl-devel

      安装完成curl 后继续编译安装,就没啥问题了:

      [root@localhost yar-1.2.4]# /usr/local/php/bin/phpize

      [root@localhost yar-1.2.4]# ./configure --with-php-config=/usr/local/php/bin/php-config

      [root@localhost yar-1.2.4]# make && make install

      成功之后,提示我们 yar.so 扩展在已经在/usr/local/php/lib/php/extensions/no-debug-zts-20100525/ 下了。

      我们vi编辑一下 php.ini ,最后面加上yar.so扩展,然后重启一下 apache 或者php-pfm就可以了。

      [root@localhost /]# vi /usr/local/php/etc/php.ini 

      [yar]

      extension=yar.so

      好。加好了后,我们需要重启下apache或者php-fpm

      重启apache

      [root@localhost /]# /usr/local/apache/bin/apachectl restart

      平滑重启php-fpm

      kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

      重启完毕后,打开phpinfo()页面,搜索一下,应该就能够看到yar了。

      开始使用

      和其他的rpc框架一样,yar也是server/client模式,所以,我们也一样,开始写一个简单的例子来说下如何调用。

      yar_server.php表示服务器端

      <?php class API { public function api($parameter, $option = "foo") { return $parameter; } protected function client_can_not_see() { } } $service = new Yar_Server(new API()); $service->handle();

      好,我们在浏览器里运行一下,就会出现如下图所示的输出。很高端啊!!!鸟哥说这样做的用途是可以一目了然的知道我这个rpc提供了多少接口,把api文档都可以省略了。

      好,我们开始写yar_client.php 这个是客户端:

      $client = new Yar_Client("127.0.0.1/yar_server.php"); echo $client->api('helo word');

      像其他的 swoole,hprose等基本都是这个原理,只是看谁的功能更加,用起来更顺手罢了。

      以上就是详解php中流行的rpc框架的详细内容,更多关于php中流行的rpc框架的资料请关注自由互联其它相关文章!