© DrHitch/Shutterstock.com
Shortcuts
Apps mit Azure

5 Was ist eine Queue, und wozu braucht man sie?

Als Queue (Warteschlange) bezeichnet man in der Softwareentwicklung einen Zwischenspeicher, der Nachrichten aufnehmen kann und diese zur weiteren Verwendung zur Verfügung stellt. Eine solche Warteschlange kann prinzipiell eine beliebige Menge von Nachrichten aufnehmen, die in der Reihenfolge ihres Einfügens wieder abgegeben werden. Die Größe einer Queue ist allerdings in der Regel durch das Betriebssystem limitiert.

Shortcut Autorenteam


Eine Queue kann stark vereinfacht mit einer Personenschlange an einer Supermarktkasse verglichen werden: Die zuletzt hinzugefügte Nachricht (die zuletzt hinzugekommene Person in der Schlange) wird als Letztes bedient („First in – First out“). Also doch nerviges Warten? Nein. Der Versender einer Nachricht legt diese lediglich in der Queue ab – somit ist er fertig und kann sich wieder anderen Aufgaben widmen. Durch diese Zwischenspeicherung wird eine garantierte Zustellung der Informationen durch den Versender gewährleistet, ganz egal, ob der Zielserver augenblicklich erreichbar ist oder nicht. Sollte die Nachricht dennoch nicht in der Queue abgelegt werden können, wird der Sender der Nachricht über deren fehlgeschlagene Zustellung informiert und kann entsprechend reagieren.Die in der Queue abgelegten Nachrichten können zu irgendeinem Zeitpunkt vom Empfänger abgeholt werden, um weiter verarbeitet zu werden. Auf diese Weise wird ein Warten des Senders auf Aktionen des Empfängers vermieden. Es erfolgt eine Entkopplung zwischen Sender und Empfänger, was zu einer erheblichen Verkürzung der Antwortzeiten führen kann. An dieser Stelle sollte allerdings erwähnt sein, dass in einer Queue keine Daten abgelegt werden, sondern lediglich Nachrichten, etwa ein Verweis auf Daten (bspw. ein GUID), die in einem Table Storage abgelegt sein könnten, oder aber einfache Textnachrichten.Ganz wichtig bei einer Queue ist es, dass die Nachrichten nach erfolgreicher Bearbeitung gelöscht werden müssen. Wird eine Nachricht abgerufen und innerhalb einer Zeitspanne nicht gelöscht, so ist sie zwar für einen gewissen Zeitraum für andere Prozesse unsichtbar, wird jedoch für zugreifende Prozesse zu einem späteren Zeitpunkt wieder sichtbar. Dadurch kann es zu mehrfachen Verarbeitungsvorgängen kommen, was im Normalfall nicht erwünscht ist.In der modernen Softwareentwicklung werden Queues häufig zur „Datenübergabe“ zwischen asynchronen Prozessen in verteilten Systemen verwendet. Anders als bei einer klassischen Client-Server-Architektur wird eine Transaktion hier nicht direkt zwischen Client und Server vollzogen, sondern sie erfolgt eben über eine Queue. Beispielsweise bei einem Onlinebestellsystem: Ein Anwender bestellt über eine Internetseite einen Artikel. Die Bestellung wird an die Queue geschickt und dort zwischengespeichert. Sobald die Bestellung in der Queue abgelegt wurde, bekommt der Besteller eine Bestellbestätigung und der Bestellvorgang ist für den Anwender nach außen hin erfolg...

Shortcuts
Apps mit Azure

5 Was ist eine Queue, und wozu braucht man sie?

Als Queue (Warteschlange) bezeichnet man in der Softwareentwicklung einen Zwischenspeicher, der Nachrichten aufnehmen kann und diese zur weiteren Verwendung zur Verfügung stellt. Eine solche Warteschlange kann prinzipiell eine beliebige Menge von Nachrichten aufnehmen, die in der Reihenfolge ihres Einfügens wieder abgegeben werden. Die Größe einer Queue ist allerdings in der Regel durch das Betriebssystem limitiert.

Shortcut Autorenteam


Eine Queue kann stark vereinfacht mit einer Personenschlange an einer Supermarktkasse verglichen werden: Die zuletzt hinzugefügte Nachricht (die zuletzt hinzugekommene Person in der Schlange) wird als Letztes bedient („First in – First out“). Also doch nerviges Warten? Nein. Der Versender einer Nachricht legt diese lediglich in der Queue ab – somit ist er fertig und kann sich wieder anderen Aufgaben widmen. Durch diese Zwischenspeicherung wird eine garantierte Zustellung der Informationen durch den Versender gewährleistet, ganz egal, ob der Zielserver augenblicklich erreichbar ist oder nicht. Sollte die Nachricht dennoch nicht in der Queue abgelegt werden können, wird der Sender der Nachricht über deren fehlgeschlagene Zustellung informiert und kann entsprechend reagieren.Die in der Queue abgelegten Nachrichten können zu irgendeinem Zeitpunkt vom Empfänger abgeholt werden, um weiter verarbeitet zu werden. Auf diese Weise wird ein Warten des Senders auf Aktionen des Empfängers vermieden. Es erfolgt eine Entkopplung zwischen Sender und Empfänger, was zu einer erheblichen Verkürzung der Antwortzeiten führen kann. An dieser Stelle sollte allerdings erwähnt sein, dass in einer Queue keine Daten abgelegt werden, sondern lediglich Nachrichten, etwa ein Verweis auf Daten (bspw. ein GUID), die in einem Table Storage abgelegt sein könnten, oder aber einfache Textnachrichten.Ganz wichtig bei einer Queue ist es, dass die Nachrichten nach erfolgreicher Bearbeitung gelöscht werden müssen. Wird eine Nachricht abgerufen und innerhalb einer Zeitspanne nicht gelöscht, so ist sie zwar für einen gewissen Zeitraum für andere Prozesse unsichtbar, wird jedoch für zugreifende Prozesse zu einem späteren Zeitpunkt wieder sichtbar. Dadurch kann es zu mehrfachen Verarbeitungsvorgängen kommen, was im Normalfall nicht erwünscht ist.In der modernen Softwareentwicklung werden Queues häufig zur „Datenübergabe“ zwischen asynchronen Prozessen in verteilten Systemen verwendet. Anders als bei einer klassischen Client-Server-Architektur wird eine Transaktion hier nicht direkt zwischen Client und Server vollzogen, sondern sie erfolgt eben über eine Queue. Beispielsweise bei einem Onlinebestellsystem: Ein Anwender bestellt über eine Internetseite einen Artikel. Die Bestellung wird an die Queue geschickt und dort zwischengespeichert. Sobald die Bestellung in der Queue abgelegt wurde, bekommt der Besteller eine Bestellbestätigung und der Bestellvorgang ist für den Anwender nach außen hin erfolg...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang