中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

如何用pHp來(lái)搭建一個(gè)高性能的服務(wù)化高性能調(diào)用例子?

2023-12-05    分類: 網(wǎng)站建設(shè)

前言

長(zhǎng)期以來(lái),pHp 被認(rèn)為不適合作為服務(wù)后端,因?yàn)闃?biāo)準(zhǔn)的應(yīng)用方法是使用 php-fpm 或 mod。但是隨著這些常駐進(jìn)程模塊的出現(xiàn),pHp已經(jīng)合格了。

下面我將介紹如何使用pHp構(gòu)建高性能的面向服務(wù)的后端框架并實(shí)現(xiàn)一個(gè)客戶端調(diào)用示例。

服務(wù)端

現(xiàn)在pHp圈最流行的框架是,是它的簡(jiǎn)化版php框架性能對(duì)比,保留了(依賴注入)、(命令行生成數(shù)據(jù)表)等優(yōu)點(diǎn)。

我在服務(wù)端使用的框架叫Luke,地址在這里。盧克是一個(gè)非官方的分支。它在上層做了一層封裝,剝離了用于http的路由,引入。

現(xiàn)在在你的工作目錄中執(zhí)行以下命令來(lái)生成項(xiàng)目代碼

composer create-project luke/luke=dev-luke rpcserver
cd rpcserver

此時(shí)目錄下有http.php和.php兩個(gè)文件,分別對(duì)應(yīng)http服務(wù)和服務(wù)?,F(xiàn)在我們進(jìn)入/app/Http/,編輯.php文件,添加如下代碼

public function show($name)
{
    return "Hello $name, this is Luke.";
}

這樣我們的服務(wù)器就設(shè)置好了,現(xiàn)在回到目錄執(zhí)行下面的命令啟動(dòng)服務(wù)

php servers/jsonrpc.php start

此時(shí)會(huì)輸出

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] 
----------------------------------------------------------------

表示服務(wù)運(yùn)行正常。

此示例僅適用于一個(gè)任務(wù)流程。更多設(shè)置和守護(hù)進(jìn)程方法請(qǐng)查看文檔

客戶

現(xiàn)在我們回到項(xiàng)目根目錄,再打開(kāi)一個(gè),輸入以下命令新建一個(gè)客戶端目錄并導(dǎo)入模塊

mkdir client
cd client
composer require luke/client

此時(shí)/luke/目錄下已經(jīng)有.php和test.php兩個(gè)文件,分別是配置和客戶端的例子。忽略它們,在項(xiàng)目目錄下新建一個(gè)test.php文件,輸入如下代碼保存

 [
        'hosts' => ['127.0.0.1:8000']
    ]
];
Client::config($config);
$client = Client::instance("Example");
$ret = $client->show('開(kāi)發(fā)者');
var_dump($ret);

立即執(zhí)行

php test.php

如果你看到輸出

array(1) {
  'result' =>
  string(30) "Hello 開(kāi)發(fā)者, this is Luke."
}

恭喜!你的 rpc 服務(wù)器和客戶端已經(jīng)設(shè)置好了?,F(xiàn)在將其應(yīng)用到官方項(xiàng)目中。

作為pHp的常駐程序,兩者都很優(yōu)秀,在社區(qū)的活躍度也比較高。但是因?yàn)閮烧叩男阅懿畈欢?,而且都是用純pHp開(kāi)發(fā)的,代碼更可控,所以Luke選擇了。不過(guò)兩者的調(diào)用方式很接近,只要稍微修改一下代碼就可以改用了。

并發(fā)性能可以參考這里

后記

在生產(chǎn)環(huán)境中使用面向服務(wù)的架構(gòu)。除了協(xié)議,通信部分還必須注意加密。 Luke的這部分暫未提供php框架性能對(duì)比,用戶可以通過(guò)簡(jiǎn)單的加密算法自行實(shí)現(xiàn)。

當(dāng)服務(wù)比較多時(shí),還需要加入自動(dòng)發(fā)現(xiàn)的功能。這一點(diǎn)在 Luke 的項(xiàng)目主頁(yè)上提供了一些想法。

新聞標(biāo)題:如何用pHp來(lái)搭建一個(gè)高性能的服務(wù)化高性能調(diào)用例子?
本文鏈接:http://www.rwnh.cn/news43/299193.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、響應(yīng)式網(wǎng)站小程序開(kāi)發(fā)、ChatGPT、云服務(wù)器、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
丰镇市| 库伦旗| 靖江市| 东乌| 得荣县| 长泰县| 滦南县| 会东县| 克拉玛依市| 隆安县| 互助| 安国市| 石楼县| 淮安市| 夏邑县| 巫山县| 汾阳市| 璧山县| 南丹县| 平果县| 礼泉县| 桐庐县| 金乡县| 会泽县| 嘉黎县| 阿克苏市| 玉环县| 兴安盟| 玛多县| 云阳县| 昭通市| 襄汾县| 乐昌市| 台中市| 周宁县| 德格县| 岢岚县| 诸城市| 博爱县| 屏东县| 加查县|