Heim  >  Artikel  >  PHP-Framework  >  Warum Laravel auf Swoole ausführen?

Warum Laravel auf Swoole ausführen?

青灯夜游
青灯夜游nach vorne
2022-04-26 09:54:533192Durchsuche

Warum Laravel auf Swoole ausführen? Denn die Verwendung von Swoole kann Laravel-Anwendungen beschleunigen. Im folgenden Artikel erfahren Sie, wie Sie Laravel auf Swoole verwenden. Ich hoffe, er wird Ihnen hilfreich sein!

Warum Laravel auf Swoole ausführen?

Swoole ist ein asynchrones Programmierframework in Produktionsqualität, das für PHP entwickelt wurde. Es handelt sich um eine rein in C entwickelte Erweiterung, die es PHP-Entwicklern ermöglicht, hochleistungsfähige, skalierbare gleichzeitige TCP-, UDP-, Unix-Socket-, HTTP- und WebSocket-Dienste in PHP zu schreiben, ohne zu viel nicht blockierende I/O-Programmierung und Low zu benötigen -Level-Linux-Kernel-Kenntnisse. Sie können sich Swoole wie NodeJS vorstellen, jedoch mit höherer Leistung für PHP. [Empfohlenes Lernen: Swoole-Tutorial]

Warum Laravel auf Swoole ausführen?

Die folgende Abbildung zeigt den Lebenszyklus von PHP. Wie Sie sehen, muss PHP jedes Mal, wenn Sie ein PHP-Skript ausführen, Module initialisieren und die Zend-Engine für Ihre Laufzeitumgebung starten. Und kompilieren Sie PHP-Skripte in OpCodes für die Ausführung der Zend-Engine.

Ein solcher Lebenszyklus muss jedoch jedes Mal ausgeführt werden, wenn eine Anfrage gestellt wird. Denn die durch eine einzelne Anfrage erstellte Umgebung wird unmittelbar nach der Ausführung der Anfrage zerstört.

Mit anderen Worten: Im traditionellen PHP-Lebenszyklus wird viel Zeit damit verschwendet, Ressourcen für die Skriptausführung zu erstellen und zu zerstören. Stellen Sie sich ein Framework wie Laravel vor. Wie viele Dateien müssen in jeder Anfrage geladen werden? Gleichzeitig werden viele E/A-Vorgänge verschwendet

Warum Laravel auf Swoole ausführen?

Wenn wir also Swoole verwenden, um einen Server auf Anwendungsebene zu erstellen, und Alle Skriptdateien sind vorhanden. Kann sie nach einmaligem Laden im Speicher gespeichert werden? Aus diesem Grund müssen wir versuchen, Laravel auf Swoole auszuführen. Swoole kann eine leistungsstarke Leistung bieten, während Laravel eine elegante Verwendung der Codestruktur ermöglichen kann. Diese beiden sind wirklich eine perfekte Kombination!

Installation

Das Folgende sind die Hauptfunktionen von swooletw/laravel-swoole: swooletw/laravel-swoole 的主要特点:

  • 在 Swoole 运行 Laravel/Lumen 应用
  • 出色的性能提升至 30x
  • 沙盒模式隔离应用程序容器
  • 支持在 Laravel 应用中运行 WebSocket 服务器
  • 支持 Socket.io 协议
  • 支持 Swoole 表跨进程共享

使用 Composer 安装:

$ composer require swooletw/laravel-swoole

这个包依赖于 Swoole 。在使用这个包之前,请确保你的机器安装了正确的 Swoole 。使用下面的命令快速安装(linux):

pecl install swoole

在安装这个扩展之后,你需要编辑 php.ini 添加  extension=swoole.so

php -i | grep php.ini                      # check the php.ini Warum Laravel auf Swoole ausführen? location
sudo echo "extension=swoole.so" >> php.ini  # add the extension=swoole.so to the end of php.ini
php -m | grep swoole                       # check if the swoole extension has been enabled

访问 官网 获取更多的信息。

注意:Swoole 现在只支持 Linux 和 OSX 。Windows 服务器现在还不支持。

然后,添加服务提供者:

如果你使用 Laravel ,在 config/app.php 服务提供者数组添加该服务提供者:

[
    'providers' => [
        SwooleTW\Http\LaravelServiceProvider::class,
    ],
]

如果你使用 Lumen ,请将下面的代码添加到 bootstrap/app.php

$app->register(SwooleTW\Http\LumenServiceProvider::class);

这个包支持包自动发现机制。如果你运行 Laravel 5.5 以上版本,你可以跳过这一步。

建立并运行起来

现在,你可以执行以下的命令来启动 Swoole HTTP 服务。

$ php artisan swoole:http start

然后你可以看到以下信息:

Starting swoole http server...
Swoole http server started: <http://127.0.0.1:1215>

现在可以通过访问 http://127.0.0.1:1215

  • Laravel/Lumen-Anwendungen auf Swoole ausführen
  • Hervorragende Leistung auf das 30-fache erhöht
  • Sandbox-Modus-Isolationsanwendungscontainer
  • Unterstützt die Ausführung des WebSocket-Servers in der Laravel-Anwendung
  • Unterstützt Socket . io-Protokoll
  • Unterstützt die prozessübergreifende gemeinsame Nutzung von Swoole-Tabellen
Verwenden Sie Composer zur Installation:

wrk -t4 -c100 http://your.app
Dieses Paket hängt von Swoole ab. Bevor Sie dieses Paket verwenden, stellen Sie sicher, dass auf Ihrem Computer das richtige Swoole installiert ist. Verwenden Sie den folgenden Befehl für eine schnelle Installation (Linux):
Running 10s test @ http://lumen.app:9999
  4 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.14s   191.03ms   1.40s    90.31%
    Req/Sec    22.65     10.65    50.00     65.31%
  815 requests in 10.07s, 223.65KB read
Requests/sec:     80.93
Transfer/sec:     22.21KB

Nach der Installation dieser Erweiterung müssen Sie php.ini bearbeiten und extension=swoole.so hinzufügen.

Running 10s test @ http://127.0.0.1:1215
  4 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    11.58ms    4.74ms  68.73ms   81.63%
    Req/Sec     2.19k   357.43     2.90k    69.50%
  87879 requests in 10.08s, 15.67MB read
Requests/sec:   8717.00
Transfer/sec:      1.55MB

Besuchen Sie die offizielle Website für weitere Informationen.

Hinweis: Swoole unterstützt derzeit nur Linux und OSX. Windows-Server werden noch nicht unterstützt. Dann fügen Sie den Dienstanbieter hinzu:

Wenn Sie Laravel verwenden, fügen Sie den Dienstanbieter im Dienstanbieter-Array config/app.php hinzu: rrreeeWenn Sie Lumen verwenden, fügen Sie bitte Hinzufügen hinzu Fügen Sie den folgenden Code zu bootstrap/app.php hinzu: rrreee

Dieses Paket unterstützt den Mechanismus zur automatischen Paketerkennung. Wenn Sie Laravel 5.5 oder höher ausführen, können Sie diesen Schritt überspringen.

Machen Sie es zum LaufenJetzt können Sie den folgenden Befehl ausführen, um den Swoole-HTTP-Dienst zu starten.

rrreee
Dann können Sie die folgenden Informationen sehen:

rrreee

Sie können jetzt die Laravel-Anwendung aufrufen, indem Sie auf http://127.0.0.1:1215 zugreifen.

Benchmark-Test

🎜Mit MacBook Air 13 Zoll (2015) und sauberem Lumen 5.5-Projekttest: 🎜Benchmark-Testtool: wrk🎜rrreee🎜🎜🎜Nginx basierend auf FPM🎜🎜🎜rrreee🎜🎜 🎜Swoole HTTP-Dienst🎜 🎜🎜rrreee🎜Weitere Informationen🎜🎜 Schauen Sie sich das offizielle Paket unter 🎜Github Repo🎜 an. Weitere Informationen finden Sie auch in der 🎜Offiziellen Dokumentation🎜. 🎜🎜🎜Englische Originaladresse: https://laravel-news.com/laravel-swoole?🎜🎜🎜[Verwandte Empfehlungen: 🎜Laravel-Video-Tutorial🎜]🎜

Das obige ist der detaillierte Inhalt vonWarum Laravel auf Swoole ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen