如何用pHp来搭建一个高性能的服务化高性能调用例子?

2023-12-05    分类: 网站建设

前言

长期以来,pHp 被认为不适合作为服务后端,因为标准的应用方法是使用 php-fpm 或 mod。但是随着这些常驻进程模块的出现,pHp已经合格了。

下面我将介绍如何使用pHp构建高性能的面向服务的后端框架并实现一个客户端调用示例。

服务端

现在pHp圈最流行的框架是,是它的简化版php框架性能对比,保留了(依赖注入)、(命令行生成数据表)等优点。

我在服务端使用的框架叫Luke,地址在这里。卢克是一个非官方的分支。它在上层做了一层封装,剥离了用于http的路由,引入。

现在在你的工作目录中执行以下命令来生成项目代码

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

此时目录下有http.php和.php两个文件,分别对应http服务和服务。现在我们进入/app/Http/,编辑.php文件,添加如下代码

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

这样我们的服务器就设置好了,现在回到目录执行下面的命令启动服务

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

表示服务运行正常。

此示例仅适用于一个任务流程。更多设置和守护进程方法请查看文档

客户

现在我们回到项目根目录,再打开一个,输入以下命令新建一个客户端目录并导入模块

mkdir client
cd client
composer require luke/client

此时/luke/目录下已经有.php和test.php两个文件,分别是配置和客户端的例子。忽略它们,在项目目录下新建一个test.php文件,输入如下代码保存

 [
        'hosts' => ['127.0.0.1:8000']
    ]
];
Client::config($config);
$client = Client::instance("Example");
$ret = $client->show('开发者');
var_dump($ret);

立即执行

php test.php

如果你看到输出

array(1) {
  'result' =>
  string(30) "Hello 开发者, this is Luke."
}

恭喜!你的 rpc 服务器和客户端已经设置好了。现在将其应用到官方项目中。

作为pHp的常驻程序,两者都很优秀,在社区的活跃度也比较高。但是因为两者的性能差不多,而且都是用纯pHp开发的,代码更可控,所以Luke选择了。不过两者的调用方式很接近,只要稍微修改一下代码就可以改用了。

并发性能可以参考这里

后记

在生产环境中使用面向服务的架构。除了协议,通信部分还必须注意加密。 Luke的这部分暂未提供php框架性能对比,用户可以通过简单的加密算法自行实现。

当服务比较多时,还需要加入自动发现的功能。这一点在 Luke 的项目主页上提供了一些想法。

新闻标题:如何用pHp来搭建一个高性能的服务化高性能调用例子?
本文链接:/news43/299193.html

成都网站建设公司_创新互联,为您提供域名注册响应式网站小程序开发ChatGPT云服务器标签优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站建设网站维护公司