关于java:swoole有什么好处

2次阅读

共计 1502 个字符,预计需要花费 4 分钟才能阅读完成。

Swoole 的 Coroutine 反对意味着即便您正在执行大量低廉的 I / O(例如,与数据库进行对话,应用文件系统,收回 HTTP 申请),您也能够解决许多申请。

疏导程序仅加载一次,因而您无需为每次申请领取 15%到 25%的税。因为这是初始化的一部分,所以这意味着您在每个申请上应用的资源更少,包含 RAM 和 CPU。对于某些应用程序,这可能意味着您须要更少的服务器,这可能曾经因为异步运行时而已。

无需其余 Web 服务器

说到更少的服务器,您不须要 Web 服务器,因为 Swoole 是 Web 服务器。您能够启动一个仅装置 PHP 的 Docker 容器,并且不须要在其后面装置 NGINX。

您不用在同一容器中编写 NGINX 或 Apache,它能够只是 PHP。而且,如果您要进行任何类型的容器化,那么将这些单过程容器全副应用一种语言进行确实是黄金规范。

更高要求的下限

乏味的是,Zend Framework 和 Laminas 社区的成员认为,异步服务器可能解决的申请是规范设置所能达到的四到七倍。

当然,您能够调整 Apache 和 NGINX 的速度十分快,然而应用异步服务器能够取得更快的速度,并且 Node 一次又一次地证实了这一点。

毛病

只管下面列出的特权能够为 PHP 应用程序带来可观的收益,但 Swoole 仍存在一些显著的毛病。

这些毛病可能包含:

代码重装

调试

每个事件一名听众

Swoole Response 的“end()”办法

非标准申请 / 响应 API

代码重装

作为 PHP 开发人员,咱们习惯于对代码进行更改,而后从新加载浏览器以查看更改的影响。

可怜的是,Swoole 中短少从新加载代码的性能。那是因为它是一个长期运行的过程。因而,在刷新时,它应用的是与更改前雷同的代码。

Swoole 中有一些热代码从新加载性能,然而当初无奈从新加载疏导理论服务器实例(认为应用程序实例,DI 容器,配置)自身所需的任何内容。

调试

因为 Swoole 的协程反对与 Xdebug 和 Xhprof 不兼容,因而调试可能是一个挑战。您将须要习惯日志记录。

响应“完结”办法

在 Swoole 中,如果您遗记调用“$ response-> end()”,则连贯将放弃关上状态,直到产生网络超时。这意味着以后过程放弃关上状态,这意味着事件循环不再存在。最终,这将导致超时,并且将取得超时,然而该超时依然是一个问题。

因而,如果您能够从中形象进去,则能够防止头痛。(该性能是必须的,以便 Swoole 晓得响应何时实现,并能够开释工作人员来解决另一个申请;然而,从用户的角度来看,因为遗记调用它很容易,所以这是个问题。)

因而,在 Swoole 运行时中,这是一项十分有用且不便的性能,然而如果您能够在本人的代码中防止这样做,那就更好了。
https://zhuanlan.zhihu.com/p/…
https://zhuanlan.zhihu.com/p/…
https://zhuanlan.zhihu.com/p/…
https://zhuanlan.zhihu.com/p/…
https://zhuanlan.zhihu.com/p/…
https://zhuanlan.zhihu.com/p/…
https://zhuanlan.zhihu.com/p/…

非标准申请 / 响应 API

“$ response-> end()”办法是 Swoole 中非规范申请 / 响应 API 的一个示例。它不遵循 PSR- 7 标准(PHP 的 HTTP 音讯接口),甚至不遵循任何框架实现,例如 Symfony 的 HTTPKernel 或 laminas-http。

因而,如果您要间接编写 Swoole,但仍想应用本人的框架,则须要进行调整 - 但这可能是一个问题。

正文完
 0