RPC,即 Remote Procedure Call(远程过程调用),调用远程计算机上的服务,就像调用本地服务一样。RPC可以很好的解耦系统。RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC,它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC。会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化。
众所周知,TCP 是传输层协议,HTTP 是应用层协议,而传输层较应用层更加底层,在数据传输方面,越底层越快,因此,在一般情况下,TCP 一定比 HTTP 快。
现在扔几个示例对比一下php swoole与yar两个框架的rpc,swoole后面章节再介绍:
一、安装yar扩展
1、先确认哪个php版本使用此扩展,本人使用的是7.0,在宝塔中7.0的路径默认为
/www/server/php/70/
2、安装msgpack扩展
wget https://pecl.php.net/get/msgpack-2.0.3.tgz
tar zxvf msgpack-2.0.3.tgz
cd msgpack-2.0.3
/www/server/php/70/bin/phpize
./configure --with-php-config=/www/server/php/70/bin/php-config
make && make install
3、msgpack安装完成后,在php7.0的配置文件中加上
extension = /www/server/php/70/lib/php/extensions/no-debug-non-zts-20151012/msgpack.so
4、下载安装yar扩展
wget https://pecl.php.net/get/yar-2.0.5.tgz
tar zxvf yar-2.0.5.tgz
cd yar-2.0.5
/www/server/php/70/bin/phpize
./configure --with-php-config=/www/server/php/70/bin/php-config
make && make install
5、yar安装完成后,在php7.0的配置文件中加上
extension = /www/server/php/70/lib/php/extensions/no-debug-non-zts-20151012/yar.so
IniCopy
6、重载php配置
7、示例:
https://www.php.net/manual/zh/yar.examples.php