php的swoole和rpc區別

2022-08-27 17:03:09 字數 1165 閱讀 4150

rpc是遠端過程呼叫(remote procedure call)的縮寫形式。

sap系統rpc呼叫的原理其實很簡單,有一些類似於三層構架的c/s系統,第三方的客戶程式通過介面呼叫sap內部的標準或自定義函式,獲得函式返回的資料進行處理後顯示或列印。

推薦學習(swoole教程)

程序間通訊(ipc)是在多工作業系統或聯網的計算機之間執行的程式和程序所用的通訊技術。有兩種型別的程序間通訊(ipc)。

本地過程呼叫(lpc)lpc用在多工作業系統中,使得同時執行的任務能互相會話。這些任務共享記憶體空間使任務同步和互相傳送資訊。

遠端過程呼叫(rpc)rpc類似於lpc,只是在網上工作。rpc開始是出現在sun微系統公司和hp公司的執行unⅸ作業系統的計算機中。

swoole框架提供的rpc伺服器支援了單連線併發、php-fpm下長連線維持等特性。在車輪互聯大規模應用,構建了4層架構的服務化架構。

很多企業使用http rest實現rpc通訊,實現簡單可以利用到很多現成的工具和方案。但是http通訊協議存在2個嚴重的缺陷。

http不支援單連線併發,如果要同時併發很多請求,必須建立大量tcp連線。如果php-fpm開啟500個程序,每次需要128個併發,那麼就需要建立64000個tcp連線。

http對長連線支援不夠好,很多http程式都是設計為短連線的,在請求時建立tcp連線、請求結束時close,這會帶來額外的網路通訊消耗

swoole框架的rpc客戶端使用16位元組固定包頭+包體的通訊方式,支援單連線併發、支援在php-fpm開啟長連線。

php-fpm長連線

在php-fpm中維持tcp長連線主要借助swoole擴充套件提供的swoole_keep選項,客戶端設定此選項後,在請求結束時不會關閉連線,新的請求到來後可以復用tcp連線。另外底層內建了長連線檢測的能力。

在執行$client->connect()自動檢測連線是否可用,如果復用的連線已經失效,底層會重新建立乙個新的tcp長連線。

在執行$client->connect()自動清理垃圾資料,避免上一次客戶端超時殘留的資料導致服務異常

有需要學習交流的友人**入***的咱們一起,有問題一起交流,一起進步!前提是你是學技術的。感謝閱讀!

點此加入該群​jq.qq.com

php擴充套件swoole的安裝

前提條件 事先已經安裝好了php,版本建議在php7或是以上 2.解壓安裝 tar zxvf swoole src 4.2.9.tar.gz cd swoole src 4.2.9 phpize ubuntu 沒有安裝phpize可執行命令 sudo apt get install php dev來...

PHP的swoole框架 擴充套件socket聊天示例

php 檔名 chat.php 建立websocket伺服器物件,監聽0.0.0.0 9502埠 ws new swoole websocket server 0.0.0.0 9502 監聽websocket連線開啟事件 ws on open function ws,request 監聽websoc...

PHP 7下安裝Swoole和Yar Yaf

筆者開發壞境 centos7,php 7.0.16 php版本 7 wget php go pear phar php版本 7 yum install php pear 否則會報錯php parse error syntax error,unexpected new t new in usr sha...