Laravel Octane
发布日期:作者: Paul Redmond
Taylor Otwell 在 Laracon Online 2021 为参与者提供了 Laravel Octane 的首秀,这是一个统一的一级包,用于在 Swoole 和 RoadRunner 等环境中运行高性能 Laravel。
在演示期间,Octane 在大约 50 个并发请求的负载下,在一些“hello world”示例中,每秒提供了约 6000 多个请求,使用四个并发线程。
哇!
— Laracon Online (@LaraconOnline) 2021 年 3 月 17 日
使用 Octane Swool 服务器运行,框架处理了 6000 多个请求。
太疯狂了!pic.twitter.com/FGYoghib2D
以下是在演示期间使用的 wrk 命令 的示例,作为粗略基准示例。
wrk -t4 -c50 http://localhost:8000/hello-world
它是如何工作的?
Octane 的入口点是 Artisan 控制台命令(octane:start
),它将运行 Swoole 或 RoadRunner。您可以指定要使用哪种技术以及根据环境的 CPU 线程运行多少个线程。
artisan octane:start --workers=8 --server=roadrunner
Swoole 和 RoadRunner 利用协程,使 PHP 能够通过根据 CPU 核心数量分叉多个工作进程来更有效地运行。使用 Swoole/RoadRunner 可以提高应用程序启动效率,并结合 PHP OPcache 来通过将字节码存储在共享内存中来最小化开销。
PHP 工作进程在请求之间保持活动状态(您可以在“x”个请求后通过 artisan 标志循环它们),并准备好接收新请求。消除框架启动时间对处理大量 HTTP 工作负载的应用程序的性能有重大影响。
目的何在?
典型的应用程序不需要我们在 Octane 的这些早期演示中看到的离谱的每秒请求数。但是,对高可用性 PHP 应用程序的需求很常见,而 Laravel 在确保框架级代码与 Swoole 和 Octane 等工具无缝协作方面处于独特的地位。
Laravel 对这些技术的首选支持将在现代方法中扩展 PHP 应用程序方面取得重大突破。整个 PHP 生态系统将从这些努力中受益。
Laravel Octane 何时发布?
自 2021 年 5 月 12 日以来,Laravel Octane 的第一个版本已发布。