php的swoole和rpc区别

RPC是远程过程调用(Remote Procedure Call)的缩写形式。php

SAP系统RPC调用的原理其实很简单,有一些相似于三层构架的C/S系统,第三方的客户程序经过接口调用SAP内部的标准或自定义函数,得到函数返回的数据进行处理后显示或打印。node

推荐学习(swoole教程)服务器

进程间通讯(IPC)是在多任务操做系统或联网的计算机之间运行的程序和进程所用的通讯技术。有两种类型的进程间通讯(IPC)。swoole

本地过程调用(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链接。ide

Http对长链接支持不够好,不少Http程序都是设计为短链接的,在请求时建立TCP链接、请求结束时close,这会带来额外的网络通讯消耗函数

Swoole框架的RPC客户端使用16字节固定包头+包体的通讯方式,支持单链接并发、支持在php-fpm开启长链接。

php-fpm长链接

在php-fpm中维持TCP长链接主要借助swoole扩展提供的SWOOLE_KEEP选项,客户端设置此选项后,在请求结束时不会关闭链接,新的请求到来后能够复用TCP链接。另外底层内置了长链接检测的能力。

在执行$client->connect()自动检测链接是否可用,若是复用的链接已经失效,底层会从新建立一个新的TCP长链接。

在执行$client->connect()自动清理垃圾数据,避免上一次客户端超时残留的数据致使服务异常

 

有须要学习交流的友人请加入交流群的我们一块儿,有问题一块儿交流,一块儿进步!前提是你是学技术的。感谢阅读!

点此加入该群​jq.qq.com

相关文章
相关标签/搜索