RPC,就是Remote Procedure Call的简称呀,翻译成中文就是远程过程调用
RPC要解决的两个问题:
- 解决分布式系统中,服务之间的调用问题。
- 远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑
如果模仿B/S架构的调用方式,每次调用时,都需要写一串发起http请求的代码。比如new Curl()...之类的,能不能像本地调用一样,去发起远程调用,让使用者感知不到远程调用的过程。
实际情况下,RPC很少用到http协议来进行数据传输,毕竟我只是想传输一下数据而已,何必动用到一个文本传输的应用层协议。 为什么不直接使用二进制传输。
安装:
$ pecl install yar
$ pecl install msgpack
服务端代码:
<?php
require_once 'Email.php';
require_once 'Sms.php';
class Service
{
private $sms;
private $email;
public function __construct()
{
$this->sms = new Sms();
$this->email = new Email();
}
/**
* @param $mobile
* @return string
*/
public func