2009-05-26 10 views
4

Ich ging zu Jim Webber Präsentation und in der Mitte seiner Präsentation sagte er, dass ATOM ist ein guter Ersatz für JMS in vielen Fällen. Da JMS ein Messaging-Dienst ist, bin ich neugierig darauf. Verwenden Sie ATOM als Messaging-Dienst? Ist es zuverlässig und skalierbar?ATOM für Messaging-Dienst für "Unternehmen"

Der größte Vorteil von JMS ist, dass es die Push-Methode (der Server benachrichtigt neue Nachrichten) und nicht die Pull-Methode (die Clients fragen nach neuen Nachrichten jede X Millisekunden) verwendet. Ich denke, für "Web 2.0" -Anwendungen ist diese Methode cool, aber für "Enterprise" -Anwendungen ist die Push-Methode weitaus besser skalierbar. Was denkst du?

Antwort

3

Warum denken Sie, dass Push ist "viel besser skalierbar", dann für den Anfang ziehen?

Zweitens ist es eine ziemlich breite Frage, einige Echtzeitanwendungen müssen Push verwenden, wenn die Abfrageintervalle keinen Sinn ergeben (Ich brauche Antwortzeiten unter einer Sekunde und möchte nicht alle 100 ms abfragen). Aber in den meisten Fällen habe ich Pull immer besser skalierbar und einfacher zu implementieren gefunden. Wir verwenden das Atom Pub/Syndication-Format für eine "Messaging" -Typ-Infrastruktur, die es Clients ermöglicht, ältere Nachrichten zu erfassen, die sie möglicherweise übersehen haben (viel schwieriger mit JMS zu tun). Veröffentlichen Sie Nachrichten in einer Atom-Sammlung (Feed) und dann, wann immer ein Benutzer seinen Client startet, können sie den Feed abrufen und sehen, was neu ist. Vielleicht sind sie nur darauf bedacht, jede Stunde, jeden Tag Updates zu sehen - alles viel einfacher auf der Client-Seite zu tun - ohne irgendeine Interaktion zwischen dem Server, der die Nachrichten veröffentlicht, und den Clients, die sie verbrauchen.

+0

Ich denke, es ist weit besser skalierbar ist, weil ich denke, es ist besser, einen Server 1000 Kunden zu benachrichtigen, wenn eine neue Nachricht als 1000 Kunden kommen alle 1 Sekunden auf den Server fragen, ob eine neue Nachricht eingetroffen war. – razenha

+1

Ich kann sehen, warum du das denken würdest, früher - aber bei der Praxis habe ich herausgefunden, dass es nicht wahr ist. Beide Lösungen haben ihre Plus- und Minuspunkte, aber im WWW dreht sich alles um Umfragen und es scheint ziemlich gut zu skalieren. Wie ich oben erwähnt habe, ist die Veröffentlichung Ihrer Nachrichten und die Möglichkeit, dass der Kunde sie nach Belieben konsumiert, eine entkoppelte Lösung und viel einfacher zu schreiben. Ihr Server wird sehr leicht und damit leistungsfähiger als ein Push-Server. – Gandalf

1

Ob Druck oder Zug geeignet ist für ein gegebenes Problem der Menge der übertragenen Daten, die Verfügbarkeit Knoten und andere spezifische Eigenschaften des Problems stark von den Latenzanforderungen abhängt. Lassen Sie sich von niemandem sagen, dass einer immer besser ist als der andere.

2

Sie vergleichen Äpfel mit Orangen.

JMS ist der Standard-API für Java-Programme Einsatz zuverlässigen Punkt-zu-Punkt-und Pub-Sub-Messaging-Brokers zu machen.

Atom ist ein XML-basiertes Datenformat zur Darstellung von Newsfeeds.

Sie können JMS verwenden, um Nachrichten zu senden, die Daten im Atom-Format enthalten, falls Sie dies wünschen. Es würde jedoch nicht viel Sinn machen, da der Inhalt von Atom-Feeds Informationen enthält, die es Clients ermöglichen, zu bestimmen, welche Feed-Elemente neu sind und welche sie beim letzten Abruf bereits heruntergeladen haben. Ein Pub-Sub-Broker erledigt das für Sie, sodass eine Pub-Sub-Benachrichtigung nur die neuen Informationen enthalten kann, die für Abonnenten von Interesse sind.

+1

Es tut mir leid zu sagen, aber Sie haben klar verstanden, worum es geht. Sie können ATOM für den Messaging-Dienst verwenden. – razenha

+2

Nein, Sie verwenden HTTP + ATOM für Messaging. HTTP ist der Transport, ATOM ist nur das Format für die Darstellung von Ereignissen. – Nat

Verwandte Themen