2023-12-05 分類: 網(wǎng)站建設
前言
長期以來,pHp 被認為不適合作為服務后端,因為標準的應用方法是使用 php-fpm 或 mod。但是隨著這些常駐進程模塊的出現(xiàn),pHp已經(jīng)合格了。
下面我將介紹如何使用pHp構建高性能的面向服務的后端框架并實現(xiàn)一個客戶端調用示例。
服務端
現(xiàn)在pHp圈最流行的框架是,是它的簡化版php框架性能對比,保留了(依賴注入)、(命令行生成數(shù)據(jù)表)等優(yōu)點。
我在服務端使用的框架叫Luke,地址在這里。盧克是一個非官方的分支。它在上層做了一層封裝,剝離了用于http的路由,引入。
現(xiàn)在在你的工作目錄中執(zhí)行以下命令來生成項目代碼
composer create-project luke/luke=dev-luke rpcserver
cd rpcserver
此時目錄下有http.php和.php兩個文件,分別對應http服務和服務?,F(xiàn)在我們進入/app/Http/,編輯.php文件,添加如下代碼
public function show($name)
{
return "Hello $name, this is Luke.";
}
這樣我們的服務器就設置好了,現(xiàn)在回到目錄執(zhí)行下面的命令啟動服務
php servers/jsonrpc.php start
此時會輸出
Workerman[servers/jsonrpc.php] start in DEbUG mode
----------------------- WORKERMAN -----------------------------
Workerman version:3.5.4 pHp version:7.2.1
------------------------ WORKERS -------------------------------
user worker listen processes status
simon none jsonNL://0.0.0.0:8000 1 [OK]
----------------------------------------------------------------
表示服務運行正常。
此示例僅適用于一個任務流程。更多設置和守護進程方法請查看文檔
客戶
現(xiàn)在我們回到項目根目錄,再打開一個,輸入以下命令新建一個客戶端目錄并導入模塊
mkdir client
cd client
composer require luke/client
此時/luke/目錄下已經(jīng)有.php和test.php兩個文件,分別是配置和客戶端的例子。忽略它們,在項目目錄下新建一個test.php文件,輸入如下代碼保存
[
'hosts' => ['127.0.0.1:8000']
]
];
Client::config($config);
$client = Client::instance("Example");
$ret = $client->show('開發(fā)者');
var_dump($ret);
立即執(zhí)行
php test.php
如果你看到輸出
array(1) {
'result' =>
string(30) "Hello 開發(fā)者, this is Luke."
}
恭喜!你的 rpc 服務器和客戶端已經(jīng)設置好了?,F(xiàn)在將其應用到官方項目中。
和
作為pHp的常駐程序,兩者都很優(yōu)秀,在社區(qū)的活躍度也比較高。但是因為兩者的性能差不多,而且都是用純pHp開發(fā)的,代碼更可控,所以Luke選擇了。不過兩者的調用方式很接近,只要稍微修改一下代碼就可以改用了。
并發(fā)性能可以參考這里
后記
在生產環(huán)境中使用面向服務的架構。除了協(xié)議,通信部分還必須注意加密。 Luke的這部分暫未提供php框架性能對比,用戶可以通過簡單的加密算法自行實現(xiàn)。
當服務比較多時,還需要加入自動發(fā)現(xiàn)的功能。這一點在 Luke 的項目主頁上提供了一些想法。
新聞標題:如何用pHp來搭建一個高性能的服務化高性能調用例子?
本文鏈接:http://jinyejixie.com/news43/299193.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、響應式網(wǎng)站、小程序開發(fā)、ChatGPT、云服務器、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容