首頁 >後端開發 >php教程 >服務間通訊RPC的詳細介紹

服務間通訊RPC的詳細介紹

不言
不言轉載
2018-12-29 10:19:183997瀏覽

這篇文章帶給大家的內容是關於服務間通訊RPC的詳細介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

現微服務盛行,服務之間通訊大概就兩種方式Api和Rpc。

下面兩個列子來讓你了解Api和Rpc的差別。

列子一 文章的增刪改查。

Api 實作:

Router::get('/article/{id}','ArticleController@get');
Router::post('/article','ArticleController@create');
Router::put('/article/{id}','ArticleController@edit');
Router::delete('/article/{id}','ArticleController@delete');

然後在控制器Article呼叫模型

return Article::find($id)->toArray();

#Rpc 實作

RpcServer::add('Article');

沒錯就一行程式碼

#列子二計算器

假如機器A上面一個計算器Counter,以Rpc的方式提供給其他機器使用.

計算器Counter代碼

class Counter
{

    private $i = 0;

    public function __construct($i = 0)
    {
        $this->i = $i;
    }

    // 加法
    public function add($v)
    {
        $this->i += $v;
        return $this;
    }

    // 减法
    public function sub($v)
    {
        $this->i -= $v;
        return $this;
    }

    // 乘法
    public function mul($v)
    {
        $this->i *= $v;
        return $this;
    }

    // 除法
    public function p($v)
    {
        $this->i /= $v;
        return $this;
    }

    // 获取结果
    public function get()
    {
        return $this->i;
    }
}

##Rpc 實作##

RpcServer::add('Counter');

Rpc客戶端呼叫

$c = new ClientCounter(10);
echo $c->add(3)->mul(2)->sub(10)->p(5)->get();

#

以上是服務間通訊RPC的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除