RoadRunner ist ein High-Performance Application Server für PHP, der von Spiral Scout entwickelt wurde. Er ersetzt den klassischen PHP-FPM (FastCGI Process Manager) und bietet durch eine dauerhafte Ausführung deiner PHP-Anwendung einen massiven Performance-Schub – besonders bei Frameworks wie Laravel oder Symfony.
PHP-Skripte werden nicht bei jeder Anfrage neu geladen, sondern laufen dauerhaft in sogenannten Worker-Prozessen (ähnlich wie bei Node.js oder Swoole).
Dadurch sparst du dir das erneute Bootstrapping deiner App bei jedem Request – das ist wesentlich schneller als bei PHP-FPM.
RoadRunner selbst ist in der Programmiersprache Go geschrieben – das bedeutet hohe Stabilität, einfache Cross-Plattform-Deployments und parallele Verarbeitung von Anfragen.
HTTP-Server (inkl. HTTPS, Gzip, CORS, etc.)
PSR-7 & PSR-15 Middleware-Kompatibilität
Unterstützung für:
Hot Reload für Änderungen im Code (mit Watch-Modul)
RoadRunner startet PHP-Worker-Prozesse.
Die Worker laden einmal den gesamten Framework-Bootstrap.
RoadRunner verteilt HTTP- oder gRPC-Anfragen an die Worker.
Die Antwort wird über Go zurückgegeben – schnell und parallel.
Laravel + RoadRunner (statt Laravel + PHP-FPM)
Anwendungen mit hoher Request-Frequenz
APIs, Microservices, Echtzeit-Anwendungen (z. B. mit WebSockets)
Serverless-ähnliche Dienste, wo Latenz kritisch ist
Eigenschaft | PHP-FPM | RoadRunner |
---|---|---|
Bootstrapping pro Request | Ja | Nein (persistente Worker) |
Geschwindigkeit | Gut | Exzellent |
WebSockets | Nicht direkt | Ja |
gRPC | Nein | Ja |
Sprache | C | Go |
gRPC ist ein Open-Source-RPC (Remote Procedure Call) Framework, das von Google entwickelt wurde. Es wurde entwickelt, um die Kommunikation zwischen verschiedenen Anwendungen und Diensten in verteilten Systemen zu erleichtern. Hier sind einige wichtige Merkmale und Konzepte von gRPC:
Protocol Buffers (Protobuf): gRPC verwendet Protocol Buffers, auch bekannt als Protobuf, als standardisiertes, effizientes Format zur Serialisierung von Daten. Dies ermöglicht die einfache Definition von Dienstschnittstellen und Nachrichtenstrukturen.
HTTP/2: gRPC basiert auf HTTP/2 als Transportprotokoll, was zu einer effizienten, bidirektionalen Kommunikation zwischen Client und Server führt. Dies ermöglicht das Streamen von Daten und die parallele Verarbeitung mehrerer Anfragen und Antworten.
IDL (Interface Definition Language): Mit gRPC können Sie Dienstschnittstellen mithilfe einer speziellen IDL definieren, die als Protobuf-Dateien geschrieben wird. Diese Schnittstellenbeschreibungen ermöglichen es, die Methodeaufrufe und Nachrichtenstrukturen klar zu definieren.
Unterstützung mehrerer Sprachen: gRPC bietet Unterstützung für verschiedene Programmiersprachen, einschließlich C++, Java, Python, Go, und mehr. Dadurch können Entwickler gRPC in verschiedenen Umgebungen verwenden.
Bidirektionale Streaming: gRPC ermöglicht es sowohl dem Client als auch dem Server, Daten in Echtzeit zu senden und zu empfangen. Dies ist nützlich für Anwendungen, die kontinuierlichen Datenaustausch erfordern, wie beispielsweise Chatanwendungen oder Echtzeitbenachrichtigungen.
Authentifizierung und Sicherheit: gRPC bietet eingebaute Unterstützung für Authentifizierung und Sicherheit. Sie können SSL/TLS zur Verschlüsselung der Kommunikation verwenden und Authentifizierungsmechanismen wie OAuth2 integrieren.
Codegenerierung: gRPC generiert automatisch Client- und Servercode aus den Protobuf-Dateien, wodurch die Entwicklungsarbeit erleichtert wird.
gRPC wird häufig in Microservices-Architekturen, IoT-Anwendungen und anderen verteilten Systemen eingesetzt. Es bietet eine effiziente und plattformübergreifende Möglichkeit, Dienste miteinander zu verbinden und Daten auszutauschen.