php中swoole和rpc有什么区别

  介绍

这篇文章主要介绍php中swoole和rpc有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

<强> rpc是远程过程调用(远程过程调用)的缩写形式。

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

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

本地过程调用(LPC) LPC的用在多任务操作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。

远程过程调用rpc (Remote Procedure Call, rpc)类似于LPC分析,只是在网上工作.RPC开始是出现在太阳微系统公司和惠普公司的运行UNⅨ操作系统的计算机中。

<强> swoole框架提供的rpc服务器支持了单连接并发,PHP-FPM下长连接维持等特性。在车轮互联大规模应用,构建了4层架构的服务化架构。

很多企业使用Http Rest实现rpc通信,实现简单可以利用到很多现成的工具和方案。但是Http通信协议存在2个严重的缺陷。

Http不支持单连接并发,如果要同时并发很多请求,必须创建大量TCP连接。如果PHP-FPM开启500个进程,每次需要128个并发,那么就需要创建64000个TCP连接。

Http对长连接支持不够好,很多Http程序都是设计为短连接的,在请求时创建TCP连接,请求结束时关闭,这会带来额外的网络通信消耗

<强> swoole框架的rpc客户端使用16个字节固定包头+包体的通信方式,支持单连接并发,支持在PHP-FPM开启长连接。

<强> PHP-FPM长连接

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

在执行客户→美元connect()自动检测连接是否可用,如果复用的连接已经失效,底层会重新创建一个新的TCP长连接。

在执行客户→美元connect()自动清理垃圾数据,避免上一次客户端超时残留的数据导致服务异常

socket 美元;=,new  \ swoole_client (SWOOLE_SOCK_TCP  |, SWOOLE_KEEP,, WOOLE_SOCK_SYNC);   套接字→美元集(阵列(   ,,,& # 39;open_length_check& # 39;,=祝辞,真的,   ,,,& # 39;package_max_length& # 39;,=祝辞,$ this→packet_maxlen,   ,,,& # 39;package_length_type& # 39;,=祝辞,& # 39;n # 39;   ,,,& # 39;package_body_offset& # 39;,=祝辞,RPCServer: HEADER_SIZE,   ,,,& # 39;package_length_offset& # 39;,=祝辞,0,   ));

以上是“php中swoole和rpc有什么区别”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

php中swoole和rpc有什么区别