php中swoole和rpc有什么区别-创新互联
这篇文章主要介绍php中swoole和rpc有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
成都创新互联于2013年成立,是专业互联网技术服务公司,拥有项目做网站、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元杭锦后做网站,已为上家服务,为杭锦后各地企业和个人服务,联系电话:13518219792RPC是远程过程调用(Remote Procedure Call)的缩写形式。
SAP系统RPC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。
进程间通信(IPC)是在多任务操作系统或联网的计算机之间运行的程序和进程所用的通信技术。有两种类型的进程间通信(IPC)。
本地过程调用(LPC)LPC用在多任务操作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。
远程过程调用(RPC)RPC类似于LPC,只是在网上工作。RPC开始是出现在Sun微系统公司和HP公司的运行UNⅨ操作系统的计算机中。
Swoole框架提供的RPC服务器支持了单连接并发、PHP-FPM下长连接维持等特性。在车轮互联大规模应用,构建了4层架构的服务化架构。
很多企业使用Http Rest实现RPC通信,实现简单可以利用到很多现成的工具和方案。但是Http通信协议存在2个严重的缺陷。
Http不支持单连接并发,如果要同时并发很多请求,必须创建大量TCP连接。如果php-fpm开启500个进程,每次需要128个并发,那么就需要创建64000个TCP连接。
Http对长连接支持不够好,很多Http程序都是设计为短连接的,在请求时创建TCP连接、请求结束时close,这会带来额外的网络通信消耗
Swoole框架的RPC客户端使用16字节固定包头+包体的通信方式,支持单连接并发、支持在php-fpm开启长连接。
php-fpm长连接
在php-fpm中维持TCP长连接主要借助swoole扩展提供的SWOOLE_KEEP选项,客户端设置此选项后,在请求结束时不会关闭连接,新的请求到来后可以复用TCP连接。另外底层内置了长连接检测的能力。
在执行$client->connect()自动检测连接是否可用,如果复用的连接已经失效,底层会重新创建一个新的TCP长连接。
在执行$client->connect()自动清理垃圾数据,避免上一次客户端超时残留的数据导致服务异常
$socket = new \swoole_client(SWOOLE_SOCK_TCP | SWOOLE_KEEP, WOOLE_SOCK_SYNC); $socket->set(array( 'open_length_check' => true, 'package_max_length' => $this->packet_maxlen, 'package_length_type' => 'N', 'package_body_offset' => RPCServer::HEADER_SIZE, 'package_length_offset' => 0, ));
以上是“php中swoole和rpc有什么区别”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
文章名称:php中swoole和rpc有什么区别-创新互联
URL标题:http://hbruida.cn/article/cdshph.html