在Aerys上使用PPM

  • 本文关键字:PPM Aerys amphp php-pm
  • 更新时间 :
  • 英文 :


"不使用Aerys中的任何阻止I/O功能"。在https://amphp.org/aerys/io#blocking-io上发出警告。如果我需要使用PDO(例如Prooph组件),我应该使用PPM而不是AERYS,并且要重复使用初始化的应用程序实例来处理不同的请求?

我没有任何存在的PPM适配器(例如,Symfony)。是否有一种方法可以重复使用Aerys代码(例如路由器),用于请求 - 响应逻辑,当时在Aerys上使用PPM(https://github.com/php-pm/php-pm/php-pm/pm/pm/pull/267)?

您只需使用-w交换机来增加工人计数,如果您想使用阻止函数,则可以使用命令行脚本更高。这绝对不是最佳的,但是对于足够的工人,阻止不应该太明显了,除了延迟增加,这可能会发生。

另一种可能性是将阻止调用移动到使用amphp/parallel的一个或多个工作人员线程中。

只要响应相对快速,一切都应该很好。如果有很多负载,并且情况变得更慢并且可能会超时,那么问题就开始了,因为这些是很长的块。

PHP-PM与直接使用Aerys相比,没有太多的好处。它将请求重定向到当前免费的工人,但是有足够高的负载,内核负载平衡可能足够好,并且并非所有需要更长的请求都将被路由到一个工人。实际上,使用Aerys可能会更好,因为它已经准备好了,并且拥有多个独立工人,而不是一个可能是瓶颈的大师。PHP-PM可以更好地解决这一点,但目前尚未实施。此外,Aerys支持保留的连接,PHP-PM当前不支持。

最新更新