2017-02-09 6 views
-2

Ich bin ein Neuling, der gerade angefangen hat, über verteiltes System zu lesen. Ich frage mich, was sind einige Anwendungsfälle für eine verteilte Warteschlange im Gegensatz zu Warteschlangen auf jeder Maschine. Zum Beispiel, wie RabbitMQ zwischen verschiedenen Webservern verwendet wird. Wie wird es zum Beispiel beim Lastausgleich verwendet?Anwendungsfälle verteilte Warteschlange im Webserver?

Antwort

1

Wir verwenden normalerweise verteilte Warteschlangen, wenn die Kosten für die Verarbeitung einer Aufgabe zu hoch sind oder zu teuer sind. Wenn Sie beispielsweise ein Video auf YouTube hochladen, wird das Video normalerweise verarbeitet, bevor es auf der Website angezeigt wird. Im modernen Web kann es für Benutzer inakzeptabel sein, während der Verarbeitung warten zu müssen. So kann das Video gespeichert und eine Aufgabe in eine Warteschlange gestellt werden, so dass die Verarbeitung später stattfinden kann. Dann können andere Maschinen, die die Warteschlange abfragen, das Video in ihrer Freizeit bearbeiten. Dies bedeutet, dass der Nutzer nicht auf die Verarbeitung seines Videos warten muss, bevor er mit anderen Dingen auf der Website fortfahren kann. Es ermöglicht auch kritisch einen Puffer für Zeiträume mit hohem Durchsatz. Wenn Nutzer Videos schneller hochladen, als sie von den YouTube-Servern verarbeitet werden können, wächst die Warteschlange unabhängig von der Fähigkeit des Backends, Elemente zu verarbeiten.

Eine weitere Überlegung ist, dass die verteilte Natur der Warteschlange Fehlertoleranz ermöglicht. Im YouTube-Beispiel ermöglicht dies der Website, auf den Nutzer zu reagieren und dem Nutzer zu versichern, dass sein Video , möglicherweise, verarbeitet wird. In der Regel weisen verteilte Warteschlangen konfigurierbare Replikationsstufen auf, bei denen ein Element, sobald es in die Warteschlange eingereiht wird, garantiert auf n Knoten repliziert wird und daher wahrscheinlich nicht verloren geht.