PHP与Node REST-API
我正在构build一个简单的REST-API,它有一个端点,这个端点会被深度渗透。 我们称之为POST /message
。 我必须决定使用Node还是PHP。 数据库是MySQL。
在这条路线中会发生什么: – 通过HTTP-Auth的证书将通过从数据库中读取来进行检查。 – 请求另一个REST-API。 – 将执行另一个写入数据库操作。
所以有2个数据库连接和一个到另一个REST-API的http请求。 路线应该都是有速度的。 我会去PHP,因为目前的系统是基于PHP的,但路由内的请求会吓到我,导致它不是使用PHP时asynchronous。 我不关心这个请求的结果,并且在节点中,我可以只检查凭证并返回success
,asynchronous发送请求并在请求返回后执行数据库写入性能。 我不认为我可以在PHP中这样做,因为当我返回REST调用success
,一切都必须先完成,对吧?
去PHP或节点?
你写了:
导致它不是使用PHP时asynchronous
你确定这是不可能的吗? 甚至没有Guzzleasynchronous请求 ?
无论如何,我用几种语言实现了相同的REST API服务器,并在同一台机器上testing(Ubuntu Linux 16.04,i7 Intel NUC,16GB RAM),结果发现:
- Java,14000请求/秒(源代码)
- 去,12000请求/秒(源代码)
- PHP 7,6500请求/秒(源代码)
- C#(.net核心),5000请求/秒(源代码)
- Node.js,4200请求/秒(源代码)
(资源)
请注意,Node.js是唯一无法高效使用多个内核的平台。
为了模拟你的要求,我试着给PHP添加一个15ms的usleep,向Node.js添加一个15ms的setTimeout,发现当用2000个并发请求触发时,Node.js的吞吐量更高(4300 vs 1800 req /秒),但也有更高的延迟(450 vs 130 ms / req)。 可能是因为它只用了一个核心,不得不应对许多事件。 较高吞吐量的较高延迟可能是由使用事件循环引起的。 使用Apache(预)分支可能会更昂贵,但能够实现更高的并发性。
我不确定这一切会直接帮助你,但它可能会为你自己的研究提供一个起点。 玩的开心!
- 将前端的值传递给后端,而不使用url
- Swaggerpath的特定安全性
- 如何在Node.js中创build一个API请求响应stream?
- 在nodejs中传递下一个页面令牌之后,无法访问google位置api
- nodejs https api请求错误错误:在TLSWrap.onread(net.js:568:26)处的exports._errnoException(util.js:1018:11)处读取ECONNRESET
- 在承诺fs.writeFile,asynchronous同步的东西
- Mongoose API通过_id获取数组中的嵌套项
- 适用于Node.js或Objective-C的Google Drive实时API SDK?
- REST API Endpoint用于通过多步骤过程更改电子邮件并更改密码