真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

如何進行Yar并行的RPC框架使用分析

今天就跟大家聊聊有關如何進行Yar并行的RPC框架使用分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

廬山ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

前言:

RPC,就是Remote Procedure Call的簡稱呀,翻譯成中文就是遠程過程調用

RPC要解決的兩個問題:

  1. 解決分布式系統(tǒng)中,服務之間的調用問題。

  2. 遠程調用時,要能夠像本地調用一樣方便,讓調用者感知不到遠程調用的邏輯

如果模仿B/S架構的調用方式,每次調用時,都需要寫一串發(fā)起http請求的代碼。比如new Curl()...之類的,能不能像本地調用一樣,去發(fā)起遠程調用,讓使用者感知不到遠程調用的過程。

實際情況下,RPC很少用到http協(xié)議來進行數據傳輸,畢竟我只是想傳輸一下數據而已,何必動用到一個文本傳輸的應用層協(xié)議。 為什么不直接使用二進制傳輸。

安裝:

$ pecl install yar
$ pecl install msgpack

服務端代碼:

sms = new Sms();
        $this->email = new Email();
    }

    /**
     * @param $mobile
     * @return string
     */
    public function sendSms($mobile, $content = '短信內容')
    {
        return $this->sms->send($mobile, $content);
    }

    /**
     * @param $email
     * @return string
     */
    public function sendEmail($email)
    {
        return $this->email->send($email);
    }
}

$service = new Yar_Server(new Service());
$service->handle();

客戶端代碼:

SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000);
//$result = $client->sendSms('18234065200', '我是短信內容');
//echo $result;

// 二、并行調用
// public static call ( string $uri , string $method [, array $parameters [, callable $callback [, callable $error_callback [, array $options ]]]] )
// callback 回掉函數, 在遠程服務的返回到達的時候被Yar調用, 從而可以處理返回內容 如果沒有設置則調用loop中的callback
// error_callback
// $options
Yar_Concurrent_Client::call("http://192.168.2.138/api/", "sendSms", ['18234065200', '歡迎注冊']);
Yar_Concurrent_Client::call("http://192.168.2.138/api/", "sendEmail", ['12580@qq.com'], "callback", "callError", [YAR_OPT_TIMEOUT => 10]);

// 發(fā)送請求
// public static loop ([ callable $callback [, callable $error_callback ]] )
Yar_Concurrent_Client::loop("loopCallback", "loopError");

function callback($retval, $callinfo)
{
    echo 'call自己的回調:' . $callinfo['method'] . '方法返回數據' . $retval . PHP_EOL;
}

// 錯誤回掉函數, 如果設置了, Yar在發(fā)送出所有的請求之后立即調用一次這個回掉函數(此時還沒有任何請求返回), 調用的時候$callinfo參數是NULL
function loopCallback($retval, $callinfo)
{
    if (is_null($callinfo)) {
        echo '所有rpc請求發(fā)送完畢調用' . PHP_EOL;
    } else {
        echo '調用成功后返回' . PHP_EOL;
        var_dump($retval);
        var_dump($callinfo);
    }
}

// 錯誤回調
function callError()
{
    echo '發(fā)送rpc出錯' . PHP_EOL;
}

// 錯誤回掉函數, 如果設置了, 那么Yar在出錯的時候會調用這個回掉函數
function loopError()
{
    echo '發(fā)送rpc出錯' . PHP_EOL;
}

如何進行Yar并行的RPC框架使用分析

看完上述內容,你們對如何進行Yar并行的RPC框架使用分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


網頁標題:如何進行Yar并行的RPC框架使用分析
瀏覽地址:http://weahome.cn/article/gidige.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部