Queue und Topic sind zwei Messaging-Modelle, die von JMS unterstützt werden: 1. Point-to-Point (PTP) Warteschlangen-Messaging-Modell: Mit diesem Messaging-Modell kann eine Anwendung (also der Nachrichtenproduzent) eine Nachricht an eine andere Anwendung senden (also an den Nachrichtenkonsumenten). In diesem Auslieferungsmodell ist der Nachrichten-Zieltyp eine Warteschlange (d. h. die Destination-Interface-Implementierungsklasse wird von der Session-Interface-Implementierungsklasse erstellt, indem deren createQueue-Methode aufgerufen und der Warteschlangenname eingegeben wird). Die Nachricht wird zunächst an eine bestimmte Warteschlange auf der Seite des Nachrichtenservers zugestellt und von dort aus an einen Verbraucher übergeben, der diese Warteschlange abhört. Die gleiche Warteschlange kann mehrere Nachrichtenproduzenten und Nachrichtenkonsumenten verknüpfen, aber eine Nachricht kann nur an einen Nachrichtenempfänger zugestellt werden. Wenn mehrere Nachrichtenkonsumenten Nachrichten in der Warteschlange hören, bestimmt der JMS-Nachrichtenserver, welcher Nachrichtenkonsument die nächste Nachricht erhält, basierend auf dem Prinzip "Wer zuerst kommt, wer zuerst kommt". Wenn kein Nachrichtenkonsument die Warteschlange hört, bleibt die Nachricht in der Warteschlange, bis der Nachrichtenempfänger sich mit der Warteschlange verbindet. Dieses Messaging-Modell ist im traditionellen Sinne ein Lazy- oder Umfragemodell. In diesem Modell werden Nachrichten nicht automatisch an den Nachrichtenkonsumenten gesendet, sondern vom Nachrichtenkonsumenten aus der Warteschlange angefordert. 2. Themen-Messaging-Modell veröffentlichen/abonnieren (Veröffentlichen/Sub): Mit diesem Messaging-Modell können Anwendungen eine einzelne Nachricht an mehrere Nachrichtenkonsumenten senden. In diesem Auslieferungsmodell ist der Nachrichtenzieltyp das Thema (d. h. die Destination-Interface-Implementierungsklasse wird von der Session-Interface-Implementierungsklasse erstellt, indem die createTopic-Methode aufgerufen und der Topic-Name eingegeben wird). Die Nachricht wird zunächst vom Nachrichtenproduzenten an ein bestimmtes Thema im Nachrichtenserver veröffentlicht, der sie dann an alle Verbraucher weitergibt, die das Thema abonniert haben. Themenziele unterstützen auch langfristige Abonnements. Ein langfristiges Abonnement bedeutet, dass der Verbraucher im Themenziel registriert ist, aber der Verbraucher inaktiv sein kann, wenn die Nachricht das Ziel erreicht. Die Nachricht wird empfangen, wenn der Nutzer wieder aktiv ist. Wenn keiner der Konsumenten in einem Themenziel registriert ist, speichert das Thema Nachrichten nur für inaktive Konsumenten, die ein Langzeitabonnement abgeschlossen haben. Im Gegensatz zum PTP-Messaging-Modell erlaubt das Pub/Sub-Messaging-Modell mehreren Topic-Abonnenten, dieselbe Nachricht zu empfangen. JMS hält die Nachricht zurück, bis alle Themen-Abonnenten sie erhalten haben. Das Pub/Sub-Messaging-Modell ist im Grunde ein Push-Modell. In diesem Modell werden Nachrichten automatisch ausgestrahlt, und Nachrichtenkonsumenten müssen nicht aktiv Themen anfordern oder abfragen, um neue Nachrichten zu erhalten. Die spezifischen Unterschiede sind wie folgt:
Art
| Thema
| Warteschlange | Überblick
| Veröffentlichen Abonnieren Nachrichten Veröffentlichen Abonnementnachrichten
| Punkt-zu-Punkt Punkt-zu-Punkt
| Es gibt keinen Staat
| Topic-Daten sind standardmäßig zustandslos.
| Warteschlangendaten werden standardmäßig als Datei auf dem MQ-Server gespeichert, zum Beispiel wird Active MQ üblicherweise unter $AMQ_HOME\data\kr-store\data gespeichert. Es kann auch als Datenbankspeicher konfiguriert werden.
| Integritätsgarantie
| Es gibt keine Garantie, dass jedes vom Verlag veröffentlichte Datenstück vom Abonnenten akzeptiert wird.
| Warteschlange garantiert, dass jedes Datenstück vom Empfänger empfangen werden kann.
| ob die Botschaft verloren geht
| Im Allgemeinen gilt: Wenn ein Verlag eine Nachricht zu einem Thema veröffentlicht, kann nur das Subreddit empfangen, das die Themenadresse hört. Wenn kein Sub zuhört, ist das Thema verloren.
| Der Absender sendet eine Nachricht an die Ziel-Warteschlange, und der Empfänger kann Nachrichten auf dieser Warteschlange asynchron empfangen. Nachrichten in der Warteschlange gehen nicht verloren, wenn es vorerst keinen Empfänger gibt, der sie abnimmt.
| Empfangsrichtlinie für Nachrichtenfreigabe
| Bei der Eins-zu-viele-Nachrichtenveröffentlichungs- und Empfangsrichtlinie können mehrere Subreddits, die dieselbe Themenadresse ansprechen, Nachrichten des Verlags empfangen. Das Sub erhält die Benachrichtigung an den mq-Server
| Eins-zu-eins-Nachrichtenveröffentlichungs- und Empfangsrichtlinien: Nachrichten, die vom Absender gesendet werden, können nur von einem Empfänger empfangen werden. Nachdem der Empfänger empfangen hat, informiert der MQ-Server den MQ-Server, dass er empfangen wurde, und der MQ-Server löscht oder führt andere Aktionen an den Nachrichten in der Warteschlange durch.
|
|