服務間通訊RPC的詳細介紹

不言
發布: 2023-04-04 15:52:01
轉載
3978 人瀏覽過

這篇文章帶給大家的內容是關於服務間通訊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
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板