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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/96354.html
標籤:PHP
上一篇:[PHP] 編譯安裝swoole
