La forma de acelerar la aplicación con laravel Avance

Avance PSR-7 es un servidor de alto rendimiento con una implementación del lenguaje Go, que no está mal, es el lenguaje Go.

Go Avance utilizó por primera vez para lograr un servidor de alto rendimiento, y luego envía la solicitud a la pluralidad de goridge IPC PHP Trabajador CLI, Trabajador solicitará re-empaquetado en PSR-7 trama de petición para ser procesado.

prueba de entretenimiento

prueba de estado de sitio usando laravel página de bienvenida 250 usuarios concurrentes, durante 30 segundos, y Comparado Nginx + Avance FPM.

Nginx + FPM:

$ siege --no-parser -c 250 -t 30s http://127.0.0.1:3000/  > /dev/null

** SIEGE 4.0.4

** Preparing 250 concurrent users for battle.

The server is now under siege...

Lifting the server siege...

Transactions:                   2032 hits

Availability:                  97.83 %

Elapsed time:                  29.19 secs

Data transferred:               4.51 MB

Response time:                  2.64 secs

Transaction rate:              69.61 trans/sec

Throughput:                     0.15 MB/sec

Concurrency:                  183.50

Successful transactions:        2032

Failed transactions:              45

Longest transaction:           27.34

Shortest transaction:           0.

Avance (4 trabajador):

$ siege --no-parser -c 250 -t 30s http://127.0.0.1:8080/  > /dev/null

** SIEGE 4.0.4

** Preparing 250 concurrent users for battle.

The server is now under siege...

Lifting the server siege...

Transactions:                  61417 hits

Availability:                 100.00 %

Elapsed time:                  29.26 secs

Data transferred:             135.95 MB

Response time:                  0.12 secs

Transaction rate:            2099.01 trans/sec

Throughput:                     4.65 MB/sec

Concurrency:                  249.06

Successful transactions:       61417

Failed transactions:               0

Longest transaction:            0.20

Shortest transaction:           0.05

La forma de acelerar la aplicación laravel

Avance de instalación

Avance ha proporcionado archivo ejecutable pre-compilado, se puede descargar la versión correspondiente de la plataforma, los archivos de configuración están disponibles Avance proporciona: El uso de Avance.

configuración laravel

Para su instalación depende:

composer require spiral/roadrunner zendframework/zend-diactoros symfony/psr-http-message-bridge

Crear un PSR-worker.php en el proyecto laravel, cambios en el código de Tobias-kuendig:

<?php

require __DIR__ . "/vendor/autoload.php";

use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory;

use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory;

$relay = new Spiral\Goridge\StreamRelay(STDIN, STDOUT);

$psr7 = new Spiral\RoadRunner\PSR7Client(new Spiral\RoadRunner\Worker($relay));

$app = require_once __DIR__ . '/bootstrap/app.php';

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

while ($req = $psr7->acceptRequest()) {

    try {

        $httpFoundationFactory = new HttpFoundationFactory();

        if (strpos($req->getHeaderLine("content-type"), "application/json") === 0) {

            $body = $req->getBody();

            $parsedBody = json_decode($body, true);

            $req = $req->withParsedBody($parsedBody);

        }

        $symfonyReq = $httpFoundationFactory->createRequest($req);

        $request = Illuminate\Http\Request::createFromBase($symfonyReq);

        $response = $kernel->handle($request);

        $psr7factory = new DiactorosFactory();

        $psr7response = $psr7factory->createResponse($response);

        $psr7->respond($psr7response);

    } catch (\Throwable $e) {

        $psr7->getWorker()->error((string)$e);

    }

}

rr ejecutar servir -v get.

Obtenga más información, visite:

Tencent T3-T4 Boutique estándar directorio Arquitecto tutorial Daquan PHP, siempre y cuando se lee el pago de garantía se eleva a un nivel superior (actualizado continuamente)

Por encima de la esperanza de ayudar a todos, muchas Phper siempre encontrar algunos problemas y cuellos de botella en el momento avanzada, escribir más código de negocio sin sentido de dirección, no sé por dónde empezar a subir, lo que he recopilado algunos datos, incluyendo pero no limitado a: una arquitectura distribuida, altamente escalable, de alto rendimiento, de alta concurrencia, el ajuste del rendimiento del servidor, TP6, laravel, YII2, Redis , Swoole, Swoft, Kafka, Mysql optimización, secuencias de comandos shell, estibador, micro-servicios, Nginx, etc. más avanzados conocimientos requeridos para los productos avanzados secos puede ser libre para que todos puedan compartir , es necesario añadir a mi grupo oficial aquí .

Publicados 265 artículos originales · ganado elogios 36 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_43814458/article/details/105273494
Recomendado
Clasificación