RabbitMQ für stabilere Shopware-Shops
Die zuverlässige Funktionalität eines Online-Shops ist für Webshop-Betreiber unabdingbar. Gerade die korrekte Ausführung von Cronjobs und Scheduled Tasks ist essentiell um einen reibungslosen Betrieb zu gewährleisten.
Unser Partner Proxation GmbH erläutert in diesem Gastbeitrag wie die Open-Source-Software RabbitMQ bei Shopware-Shops für mehr Stabilität im Betrieb sorgen kann.
Problematische Ausführung von Scheduled Tasks in Shopware 6
In Online-Shops werden viele Prozesse durch Cronjobs, oder wie in Shopware 6 genannt „Scheduled Tasks“, ausgeführt. Darunter fällt beispielsweise die Generierung von Datenexporten, aber auch viele Plugins bzw. Apps nutzen Scheduled Tasks, um ihre Aufgaben zu erfüllen. Wir von Proxation hatten insbesondere bei größeren Shops immer wieder die Thematik, dass die Message Queue voll war, bzw. nicht weiter ausgeführt wurde. Dies resultiert dann in dem Problem, dass essentielle Prozesse nicht ausgeführt werden.
Reibungslose Ausführung von PHP FPM?!
Shopware verwendet die Messenger-Komponente der PHP-Frameworks Symfony und Enqueue, um asynchrone Nachrichten zu verarbeiten. Dies ermöglicht die Verarbeitung von Aufgaben im Hintergrund. So können Aufgaben unabhängig von Zeitüberschreitungen oder Systemabstürzen bearbeitet werden. Standardmäßig werden die Aufgaben in Shopware in der Datenbank gespeichert und über den Browser bearbeitet, solange der Nutzer in der Administration angemeldet ist.
Dies ist zwar eine einfache und schnelle Methode für den Entwicklungsprozess, wird aber für Produktionssysteme nicht empfohlen. Wenn mehrere Benutzer in der Administration angemeldet sind, kann dies zudem zu einer hohen CPU-Last führen und die reibungslose Ausführung von PHP FPM beeinträchtigen.
RabbitMQ für zuverlässige Ausführung von Scheduled Tasks
Für die zuverlässige Ausführung von Scheduled Task hat sich bei Proxation der Einsatz von RabbitMQ bewährt.
Was ist RabbitMQ?
RabbitMQ ist eine Open-Source-Middleware-Plattform (also kostenfrei nutzbar), die als Message-Broker verwendet wird und in verschiedenen Anwendungen eingesetzt werden kann.
Was sind die Vorteile von RabbitMQ?
RabbitMQ hat mehrere Vorteile – hier sind einige davon:
- Zuverlässige Übermittlung von „Scheduled Tasks“: RabbitMQ bietet eine zuverlässige Nachrichtenübermittlung, die sicherstellt, dass Nachrichten nicht verloren gehen, selbst wenn Netzwerkausfälle auftreten. Dies wird durch die Verwendung von Nachrichtenwarteschlangen (Queues) und Bestätigungen garantiert.
- Integration: Bei maxcluster ist RabbitMQ über das Web-Interface konfigurierbar
- Nachrichtenwarteschlangen / Message Queues: RabbitMQ ermöglicht die Verwendung von Warteschlangen, um Nachrichten zwischen Produzenten und Konsumenten zu puffern. Dies erleichtert die Entkopplung von verschiedenen Teilen einer Anwendung und sorgt für eine bessere Skalierbarkeit.
- Flexibilität und Erweiterbarkeit: RabbitMQ ist äußerst flexibel und kann durch Plugins erweitert werden. Dies ermöglicht es, RabbitMQ an die spezifischen Anforderungen der genutzten Anwendung anzupassen.
- Routing: RabbitMQ bietet leistungsstarke Routing-Mechanismen, die es ermöglichen, Nachrichten gezielt an bestimmte Empfänger oder Gruppen von Empfängern zu verteilen. Dies ist besonders nützlich in Szenarien, in denen Nachrichten an verschiedene Verarbeitungsschritte oder Anwendungskomponenten weitergeleitet werden müssen.
- Skalierbarkeit: RabbitMQ kann leicht skaliert werden, indem zusätzliche Nodes hinzugefügt werden, um die Last zu bewältigen. Dies ermöglicht es, große Mengen von Nachrichten effizient zu verarbeiten.
- Management und Überwachung: RabbitMQ bietet eine webbasierte Benutzeroberfläche und Tools zur Überwachung und Verwaltung von Warteschlangen und Nachrichten. Dies erleichtert insbesondere auch für die Entwickler des Shops die Verwaltung und das Debugging von RabbitMQ-Instanzen.
Konfiguration von RabbitMQ bei maxcluster
RabbitMQ ist im bereits im Menü des Managed Centers von maxcluster als Unterpunkt von "Cache & Queue" aufzufinden.
Die Installation ist unkompliziert. Wenn Sie jedoch Unterstützung benötigen, wenden Sie sich gerne an den maxcluster-Support per Mail an service@maxcluster.de oder telefonisch unter +49 5251 4141 30.
Grundsätzlich ist die initiale Installation hierüber auszuführen. Um RabbitMQ jedoch voll funktionsfähig für Ihren Shopware-Shop einzurichten sind noch weitere Konfigurationen in der RabbitMQ-Installation als auch in der jeweiligen Shopware 6-Installation nötig. Hierfür stehen unsere Experten bei Proxation gerne zur Verfügung – für die direkte Konfiguration sowie Integration von RabbitMQ, aber auch mit einer Schulung für Entwickler und Agenturen.
Fazit
Selbst Shopware verweist zur Sicherstellung der korrekten bzw. zuverlässigen Funktionsweise auf die Nutzung eines Dienstes wie RabbitMQ. Durch die einfache Konfigurationsmöglichkeit seitens maxcluster spricht weiterhin nichts gegen die Nutzung. Ein Quick-Win für das gesamte Shop-Projekt.
Veröffentlicht am 25.09.2023 | Proxation | NM