校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識(shí)庫 > PHP遠(yuǎn)程調(diào)用以及RPC框架

PHP遠(yuǎn)程調(diào)用以及RPC框架

熱門標(biāo)簽:福州人工外呼系統(tǒng)哪家強(qiáng) 釘釘打卡地圖標(biāo)注 衡水外呼系統(tǒng)平臺(tái) 百度商鋪地圖標(biāo)注 注冊400電話申請 常州地圖標(biāo)注服務(wù)商 新河科技智能外呼系統(tǒng)怎么樣 安裝電銷外呼系統(tǒng) 地圖標(biāo)注平臺(tái)怎么給錢注冊

前言

一個(gè)項(xiàng)目,從開始到版本更新,一直到最后的版本維護(hù)。功能在不斷增多,對應(yīng)的代碼量也在不斷增加,也就意味著項(xiàng)目變得更不可維護(hù),這時(shí)候,我們需要用拆分的方式將一個(gè)項(xiàng)目打散,以便開發(fā)團(tuán)隊(duì)更好的對項(xiàng)目進(jìn)行維護(hù)。

分模塊

這個(gè)階段,一般也是項(xiàng)目的初級階段,由于人手不夠,一個(gè)服務(wù)端的接口項(xiàng)目只有一個(gè)開發(fā)進(jìn)行維護(hù),根據(jù)開發(fā)的習(xí)慣,會(huì)把項(xiàng)目分成若干個(gè)模塊進(jìn)行開發(fā),在一個(gè)項(xiàng)目下進(jìn)行部署。

這樣做的缺點(diǎn)在于項(xiàng)目會(huì)隨著版本更新而變得不可維護(hù)。

分項(xiàng)目

隨著每個(gè)模塊功能的不斷完善,代碼變得更加臃腫。這時(shí)候需要對項(xiàng)目進(jìn)行拆分,比如上面的圖,分成用戶體系項(xiàng)目、支付體系項(xiàng)目。

CURL

開始大家會(huì)采用CURL的方式對外部資源進(jìn)行訪問。

比如某短信平臺(tái)SDK,比如各大第三方提供的SDK,糾結(jié)到源碼發(fā)現(xiàn)都是直接采用CURL函數(shù)的方式進(jìn)行訪問。

優(yōu)點(diǎn)在于沒有環(huán)境要求,能直接用。
缺點(diǎn)在于并發(fā)訪問的資源占用問題。

//新浪微博SDK的http請求部分源碼
 /**
     * Make an HTTP request
     *
     * @return string API results
     * @ignore
     */
    function http($url, $method, $postfields = NULL, $headers = array()) {
        $this->http_info = array();
        $ci = curl_init();
        /* Curl settings */
        curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
        curl_setopt($ci, CURLOPT_USERAGENT, $this->useragent);
        curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $this->connecttimeout);
        curl_setopt($ci, CURLOPT_TIMEOUT, $this->timeout);
        curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ci, CURLOPT_ENCODING, "");
        curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);
        if (version_compare(phpversion(), '5.4.0', '')) {
            curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, 1);
        } else {
            curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, 2);
        }
        curl_setopt($ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader'));
        curl_setopt($ci, CURLOPT_HEADER, FALSE);

        switch ($method) {
            case 'POST':
                curl_setopt($ci, CURLOPT_POST, TRUE);
                if (!empty($postfields)) {
                    curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
                    $this->postdata = $postfields;
                }
                break;
            case 'DELETE':
                curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
                if (!empty($postfields)) {
                    $url = "{$url}?{$postfields}";
                }
        }

        if ( isset($this->access_token)  $this->access_token )
            $headers[] = "Authorization: OAuth2 ".$this->access_token;

        if ( !empty($this->remote_ip) ) {
            if ( defined('SAE_ACCESSKEY') ) {
                $headers[] = "SaeRemoteIP: " . $this->remote_ip;
            } else {
                $headers[] = "API-RemoteIP: " . $this->remote_ip;
            }
        } else {
            if ( !defined('SAE_ACCESSKEY') ) {
//                $headers[] = "API-RemoteIP: " . $_SERVER['REMOTE_ADDR'];
            }
        }
        curl_setopt($ci, CURLOPT_URL, $url );
        curl_setopt($ci, CURLOPT_HTTPHEADER, $headers );
        curl_setopt($ci, CURLINFO_HEADER_OUT, TRUE );

        $response = curl_exec($ci);
        $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
        $this->http_info = array_merge($this->http_info, curl_getinfo($ci));
        $this->url = $url;

        if ($this->debug) {
            echo "=====post data======\r\n";
            var_dump($postfields);

            echo "=====headers======\r\n";
            print_r($headers);

            echo '=====request info====='."\r\n";
            print_r( curl_getinfo($ci) );

            echo '=====response====='."\r\n";
            print_r( $response );
        }
        curl_close ($ci);
        return $response;
    }

RPC

遠(yuǎn)程過程調(diào)用協(xié)議

RPC(Remote Procedure Call Protocol)——遠(yuǎn)程過程調(diào)用協(xié)議,它是一種通過網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。RPC協(xié)議假定某些傳輸協(xié)議的存在,如TCP或UDP,為通信程序之間攜帶信息數(shù)據(jù)。在OSI網(wǎng)絡(luò)通信模型中,RPC跨越了傳輸層和應(yīng)用層。RPC使得開發(fā)包括網(wǎng)絡(luò)分布式多程序在內(nèi)的應(yīng)用程序更加容易。

RPC采用客戶機(jī)/服務(wù)器模式。請求程序就是一個(gè)客戶機(jī),而服務(wù)提供程序就是一個(gè)服務(wù)器。首先,客戶機(jī)調(diào)用進(jìn)程發(fā)送一個(gè)有進(jìn)程參數(shù)的調(diào)用信息到服務(wù)進(jìn)程,然后等待應(yīng)答信息。在服務(wù)器端,進(jìn)程保持睡眠狀態(tài)直到調(diào)用信息到達(dá)為止。當(dāng)一個(gè)調(diào)用信息到達(dá),服務(wù)器獲得進(jìn)程參數(shù),計(jì)算結(jié)果,發(fā)送答復(fù)信息,然后等待下一個(gè)調(diào)用信息,最后,客戶端調(diào)用進(jìn)程接收答復(fù)信息,獲得進(jìn)程結(jié)果,然后調(diào)用執(zhí)行繼續(xù)進(jìn)行。

Yar

鳥哥出品的RPC框架,輕量級框架。

?php
class API {
    /**
     * the doc info will be generated automatically into service info page.
     * @params
     * @return
     */
    public function api($parameter, $option = "foo") {
    }

    protected function client_can_not_see() {
    }
}

$service = new Yar_Server(new API());
$service->handle();
?>

調(diào)用代碼

?php
$client = new Yar_Client("http://host/api/");
$result = $client->api("parameter);
?>

注意的是鳥哥出的東西文檔比較少,需要多調(diào)試。

Thrift

thrift是一個(gè)軟件框架,用來進(jìn)行可擴(kuò)展且跨語言的服務(wù)的開發(fā)。它結(jié)合了功能強(qiáng)大的軟件堆棧和代碼生成引擎,以構(gòu)建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 這些編程語言間無縫結(jié)合的、高效的服務(wù)。

遠(yuǎn)程調(diào)用的意義在于,不同的子項(xiàng)目可以用更適合自己的語言來解決,更有效率的實(shí)現(xiàn)需求。

同時(shí),對團(tuán)隊(duì)的開發(fā)來講,更能提高整體的技術(shù)水平。

SOAP

由于用的XML就不多描述了,畢竟還是json用的多。

JSON-RPC

下面是返回值的標(biāo)準(zhǔn)

--> [

    {"jsonrpc": "2.0", "method": "sum", "params": [1,2,4], "id": "1"},

    {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},

    {"jsonrpc": "2.0", "method": "subtract", "params": [42,23], "id": "2"},

    {"foo": "boo"},

    {"jsonrpc": "2.0", "method": "foo.get", "params": {"name": "myself"}, "id": "5"},

    {"jsonrpc": "2.0", "method": "get_data", "id": "9"} 

    ]

-- [

    {"jsonrpc": "2.0", "result": 7, "id": "1"},

    {"jsonrpc": "2.0", "result": 19, "id": "2"},

    {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null},

    {"jsonrpc": "2.0", "error": {"code": -32601, "message": "Method not found"}, "id": "5"},

    {"jsonrpc": "2.0", "result": ["hello", 5], "id": "9"}

    ]

實(shí)際上你會(huì)發(fā)現(xiàn)我們在給客戶端提供接口的返回值,就是按照這個(gè)標(biāo)準(zhǔn)來做的。

相應(yīng)的,服務(wù)端對服務(wù)端的數(shù)據(jù)接收和返回,也要同樣按照這個(gè)標(biāo)準(zhǔn)來做。

項(xiàng)目拆分帶來的變化

項(xiàng)目細(xì)化

一個(gè)模塊對應(yīng)一個(gè)項(xiàng)目,項(xiàng)目之間通過基于REST的接口標(biāo)準(zhǔn)進(jìn)行面向資源的數(shù)據(jù)訪問。

人員需求

項(xiàng)目拆分的前提是一個(gè)項(xiàng)目不足以滿足現(xiàn)有的業(yè)務(wù)發(fā)展要求,也就意味著拆分之后的開發(fā)人員數(shù)量的擴(kuò)增。

游擊隊(duì)向正規(guī)軍編制的跨越!

文檔

更多的項(xiàng)目也就意味著更多的接口調(diào)用文檔,適當(dāng)?shù)奶幚砦臋n才能更好的提高團(tuán)隊(duì)協(xié)作效率。

后記

服務(wù)的遠(yuǎn)程調(diào)用在于怎么合理的把一個(gè)正在變得不可維護(hù)的項(xiàng)目從焦油坑中解救出來,并提高項(xiàng)目整體能承載的業(yè)務(wù)量,不過,世界上沒有銀彈。

以上就是PHP遠(yuǎn)程調(diào)用以及RPC框架的詳細(xì)內(nèi)容,更多關(guān)于PHP遠(yuǎn)程調(diào)用的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • PHP實(shí)現(xiàn)創(chuàng)建一個(gè)RPC服務(wù)操作示例
  • php實(shí)現(xiàn)的一個(gè)簡單json rpc框架實(shí)例
  • ThinkPHP內(nèi)置jsonRPC的缺陷分析
  • PHP采用XML-RPC構(gòu)造Web Service實(shí)例教程
  • 使用PHPRPC實(shí)現(xiàn)Ajax安全登錄
  • php中關(guān)于codeigniter的xmlrpc的類在進(jìn)行數(shù)據(jù)交換時(shí)的類型問題
  • AMFPHP php遠(yuǎn)程調(diào)用(RPC, Remote Procedure Call)工具 快速入門教程
  • php xml-rpc遠(yuǎn)程調(diào)用
  • 詳解php中流行的rpc框架

標(biāo)簽:克拉瑪依 鶴崗 唐山 遼陽 六安 柳州 鷹潭 白城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP遠(yuǎn)程調(diào)用以及RPC框架》,本文關(guān)鍵詞  PHP,遠(yuǎn)程,調(diào)用,以及,RPC,框架,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP遠(yuǎn)程調(diào)用以及RPC框架》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP遠(yuǎn)程調(diào)用以及RPC框架的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美人与性动xxxx| 精品sm在线观看| 337p日本欧洲亚洲大胆色噜噜| 欧美激情综合五月色丁香小说| 亚洲不卡一区二区三区| 处破女av一区二区| 日韩欧美一区二区视频| 国产精品99久久久久久宅男| 日本福利一区二区| 国产精品色婷婷久久58| 麻豆精品一二三| 欧美三级视频在线播放| 中文字幕亚洲一区二区av在线 | 精品久久国产老人久久综合| 亚洲女同女同女同女同女同69| 国产精品一卡二卡在线观看| 欧美一区二区三区的| 亚洲h动漫在线| 欧美午夜精品一区二区三区| 亚洲精品视频观看| 97久久超碰国产精品| 中文字幕的久久| 成人av在线看| 国产精品网站在线| 国产a视频精品免费观看| 精品国内二区三区| 久久机这里只有精品| 欧美一级淫片007| 午夜精品福利在线| 91精品国产乱码| 首页综合国产亚洲丝袜| 欧美日韩激情在线| 天天综合天天做天天综合| 欧美在线播放高清精品| 亚洲国产va精品久久久不卡综合| 色婷婷精品大在线视频 | 日本高清视频一区二区| 中文字幕日韩一区| 99久久精品国产毛片| 亚洲天堂精品视频| 欧美视频中文字幕| 日韩av一区二| 26uuu另类欧美亚洲曰本| 国产一区二区影院| 中国色在线观看另类| 91免费国产视频网站| 夜夜操天天操亚洲| 欧美一区午夜精品| 久久99精品国产| 欧美极品另类videosde| 日韩欧美中文字幕公布| 国产最新精品免费| 国产精品视频你懂的| 91香蕉视频污| 日韩黄色在线观看| 久久新电视剧免费观看| 91日韩在线专区| 天天亚洲美女在线视频| 精品99久久久久久| 91片黄在线观看| 日韩电影在线看| 欧美激情资源网| 欧美日韩精品电影| 高潮精品一区videoshd| 一区二区免费在线| 日韩欧美国产一区在线观看| 成人黄色小视频在线观看| 亚洲.国产.中文慕字在线| 精品久久久影院| 91蜜桃免费观看视频| 美女一区二区视频| 亚洲日本va午夜在线电影| 欧美一级黄色片| 99国内精品久久| 久草精品在线观看| 一区二区三区在线免费| 精品久久久久99| 欧美日韩免费高清一区色橹橹| 国产a级毛片一区| 视频一区视频二区中文字幕| 国产目拍亚洲精品99久久精品| 欧美在线短视频| 成人国产精品免费观看| 美女视频网站久久| 一区二区在线观看av| 亚洲成人资源网| 综合精品久久久| 久久久久久夜精品精品免费| 欧洲精品在线观看| 成人精品视频网站| 韩国一区二区在线观看| 亚洲成av人片一区二区梦乃 | 午夜精品影院在线观看| 国产精品不卡一区二区三区| 日韩一区二区电影在线| 欧美日韩一区成人| 色综合色狠狠天天综合色| 国产不卡视频一区| 九一九一国产精品| 日韩电影在线观看一区| 亚洲一区二区三区国产| 亚洲同性gay激情无套| 欧美精彩视频一区二区三区| 国产色综合久久| 精品久久一区二区三区| 日韩一区二区在线免费观看| 欧美日韩美女一区二区| 欧美日韩国产一区二区三区地区| 99精品视频在线免费观看| 国产一区二区不卡| 久久国产福利国产秒拍| 麻豆freexxxx性91精品| 蜜臀av一区二区在线免费观看 | 中文字幕在线播放不卡一区| 欧美电影免费观看高清完整版在线观看| 欧美日韩三级一区二区| 欧美影视一区二区三区| 欧美性色黄大片| 欧美精品在线视频| 欧美一卡2卡三卡4卡5免费| 欧美日韩精品欧美日韩精品一 | 日韩制服丝袜av| 青青草国产精品97视觉盛宴| 日本强好片久久久久久aaa| 天天综合天天做天天综合| 美美哒免费高清在线观看视频一区二区 | 欧美午夜影院一区| 欧美日韩国产综合草草| 在线成人小视频| 精品电影一区二区| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美国产丝袜视频| 亚洲欧洲日本在线| 亚洲高清在线视频| 激情国产一区二区| 99精品国产99久久久久久白柏| 欧美午夜电影一区| 亚洲精品一区在线观看| 国产欧美一区二区三区在线老狼 | 日本一区二区免费在线观看视频| 成人免费小视频| 午夜精品一区二区三区三上悠亚| 精品中文av资源站在线观看| 丰满白嫩尤物一区二区| 91黄色免费看| 日韩欧美精品三级| 亚洲日本乱码在线观看| 日韩av在线播放中文字幕| 成人一区在线观看| 欧美乱妇23p| 国产精品福利av| 日日欢夜夜爽一区| 成人av电影在线观看| 欧美精品乱码久久久久久| 久久久久久久av麻豆果冻| 亚洲精品中文在线| 久久福利资源站| 欧美疯狂性受xxxxx喷水图片| 欧美图片一区二区三区| 91啪九色porn原创视频在线观看| 国产精品麻豆99久久久久久| 日韩三级伦理片妻子的秘密按摩| 香蕉久久一区二区不卡无毒影院| 高清成人免费视频| 国产亚洲欧美中文| 国产成人精品三级麻豆| 久久久久久电影| 高清beeg欧美| 国产精品国产精品国产专区不蜜 | 亚洲美女一区二区三区| 91蜜桃在线观看| 亚洲精品老司机| 精品视频在线免费看| 亚洲大片在线观看| 91精品国产91久久综合桃花| 日本不卡1234视频| 欧美成人午夜电影| 国产一区二区三区黄视频 | 美女久久久精品| 2023国产精品| 成人午夜视频在线观看| 国产精品福利在线播放| 一本大道av一区二区在线播放| 亚洲免费在线看| 欧美日韩国产另类不卡| 奇米四色…亚洲| 国产精品视频观看| 91网上在线视频| 天堂蜜桃一区二区三区| 精品国产免费一区二区三区四区| 国产老妇另类xxxxx| 日韩理论片在线| 欧美精品少妇一区二区三区| 精品在线观看免费| 国产精品卡一卡二| 欧美日韩激情在线| 国产精品综合二区| 一区二区三区国产豹纹内裤在线| 制服丝袜激情欧洲亚洲| 国产电影精品久久禁18|