Die Reaktionszeiten von Nachrichtenflüssen können auf verschiedene Weisen optimiert werden.
Beim Entwerfen eines Nachrichtenflusses hat die Flexibilität und Funktionsvielfalt der integrierten Knoten häufig zur Folge, dass es mehrere Wege zum Erreichen des Verarbeitungsziels und
damit der gewünschten Ergebnisse gibt. Sie werden feststellen, dass verschiedene Lösungen unterschiedliche Leistungen erbringen. Falls Leistung für Sie wichtig ist, sollten Sie diesen Aspekt daher unbedingt beim Entwurf Ihres Nachrichtenflusses berücksichtigen.
Die Leistung wirkt sich auf Ihre Anwendungen auf eine der folgenden Arten aus:
- Die Reaktionszeit gibt an, wie schnell die einzelnen Nachrichten vom Nachrichtenfluss verarbeitet werden. Sie wird im Wesentlichen durch den Entwurf der Nachrichtenflüsse beeinflusst. Die Reaktionszeit wird in diesem Abschnitt weiter erläutert.
- Der Durchsatz gibt an, wie viele Nachrichten bestimmter Größe in einer angegebenen Zeit von einem Nachrichtenfluss verarbeitet werden können. Der Durchsatz hängt hauptsächlich von Konfigurations- und Systemressourcenfaktoren ab und wird im Abschnitt Durchsatz des Nachrichtenflusses optimieren neben anderen Informationen zur Domänenkonfiguration erläutert.
Es gibt mehrere Aspekte, die die Reaktionszeiten von Nachrichtenflüssen beeinflussen. Allerdings sollten Sie bei der Erstellung und Bearbeitung Ihres Nachrichtenflusses nicht nur auf ein optimales Ergebnis in Hinsicht auf Ihre Geschäftsanforderungen achten, sondern auch die Komplexität des Nachrichtenflusses möglichst gering halten. Die effizientesten Nachrichtenflüsse sind nicht
notwendigerweise diejenigen, die am einfachsten zu verstehen und zu verwalten sind; experimentieren
Sie mit den verfügbaren Lösungen, um diejenige zu finden, die allen Anforderungen am besten gerecht
wird.
Reaktionszeiten von Nachrichtenflüssen werden durch mehrere Faktoren beeinflusst:
- Anzahl der Knoten, die Sie in den Nachrichtenfluss einfügen
- Jeder Knoten verursacht Verarbeitungsaufwand im Broker. Deshalb sollten Sie den Inhalt
des Nachrichtenflusses und den Einsatz von untergeordneten Nachrichtenflüssen
sorgfältig prüfen.
Verwenden Sie in einem Nachrichtenfluss so wenig Knoten
wie möglich. Jeder Knoten, den Sie in einem Nachrichtenfluss einschließen,
erhöht den Verarbeitungsaufwand im Broker. Der Anzahl der Knoten in einem Nachrichtenfluss sind schon allein durch die Systemressourcen, in erster Linie der Stackgröße, Grenzen gesetzt. Weitere Informationen zu
Stack-Größen finden Sie unter Systemressourcen bei der Nachrichtenflussentwicklung.
- Weiterleitung und Verarbeitung von Nachrichten durch den Nachrichtenfluss
In einigen Situationen bieten die integrierten Knoten und vielleicht auch andere Knoten, die in
Ihrem System zur Verfügung stehen, mehr als eine Möglichkeit, um dieselbe Funktion bereitzustellen. Wählen Sie die einfachste Konfiguration aus. Wenn
ein Nachrichtenfluss mehr als einen einzigen Datensatztyp verarbeiten muss, können Sie ein einfach zu erweiterndes Framework erstellen,
indem Sie eine Nachrichtenflussstruktur entwickeln, in der das Parsing der Nachrichten zur Bestimmung ihres Typs sowie anschließend
ein RouteToLabel und jeweils ein Label für jeden Typ vorgesehen
sind. Wenn eine größere Anzahl von Kennsatzknoten zu erwarten ist, kann es sinnvoll sein, das Nachrichten-Parsing und die Kennsatzauswahl in einem
Nachrichtenfluss und die Verarbeitung der einzelnen Kennsatztypen in separaten Nachrichtenflüssen zu implementieren. Die Schnittstelle zwischen den
beiden Nachrichtenflüsse wäre dann eine Warteschlange.
Das folgende Beispiel zeigt, wie Sie anstatt mehrerer
Filter-Knoten im Nachrichtenfluss 'XML_PassengerQuery' die Knoten '
RouteToLabel' und
Label-Knoten verwenden können.
Hier erfahren Sie, wie Sie Route-Informationen in einer Datenbanktabelle in einem Speichercache im Nachrichtenfluss speichern können.
- Message Routing (Nachrichtenrouting)
Informationen zu Beispielen können nur bei Verwendung des in das WebSphere Message
Broker Toolkit integrierten bzw. online verfügbaren Information Center angezeigt werden. Muster können nur ausgeführt werden, wenn das im
WebSphere Message
Broker Toolkit integrierte Information Center verwendet wird.
- Nachrichtenfluss enthält Schleifen
- Vermeiden Sie Schleifen mit sich wiederholenden Knoten, die sehr ineffizient sein können und
Leistungsprobleme und Stack-Fehler verursachen. Durch die Verwendung eines Compute-Knotens mit
mehreren PROPAGATE-Anweisungen lässt sich eine Schleife, die eine Folge von Knoten durchläuft, vermeiden.
- Effizienz des ESQL-Codes
- Überprüfen Sie den gesamten ESQL-Code, den Sie für Ihre Nachrichtenflussknoten erstellt haben. Beim Entwickeln und Testen eines Knotens haben Sie möglicherweise Anweisungen verwendet, die nach
Fertigstellung der Nachrichtenverarbeitung nicht mehr erforderlich sind. Überprüfen Sie auch, ob in
dem ein oder anderen Fall aus zwei Anweisungen eine einzige Anweisung gemacht werden kann. Nehmen
Sie sich Zeit für eine Überprüfung des ESQL-Codes, um ihn zu vereinfachen und
Leistungsverbesserungen zu erreichen.
- Verwendung von persistenten und transaktionsorientierten Nachrichten
- Persistente Nachrichten werden während der Nachrichtenflussverarbeitung auf Platte gespeichert.
Diese Situation verhindern Sie, indem Sie festlegen, dass Nachrichten in Empfangs- und/oder Sendeknoten nicht persistent sind. Wenn Ihr Nachrichtenfluss nur nicht
persistente Nachrichten bearbeitet, überprüfen Sie die Konfiguration der Knoten und den
Nachrichtenfluss selbst. Falls es sich bei Ihren Nachrichten um nicht persistente Nachrichten
handelt, ist möglicherweise keine Transaktionsunterstützung notwendig. Die Standardkonfiguration
einiger Knoten erzwingt Transaktionsfähigkeit. Indem Sie diese Eigenschaften ändern und den
Nachrichtenfluss erneut implementieren, können Sie die Reaktionszeiten verbessern.
- Nachrichtenlänge
- Je länger eine Nachricht, desto länger dauert die Verarbeitung. Wenn Sie lange Nachrichten in
kleinere Informationseinheiten aufteilen, erhöhen Sie die Geschwindigkeit, mit der sie vom
Nachrichtenfluss bearbeitet werden. Das folgende Beispiel zeigt, wie Sie die virtuellen Speicheranforderungen für den Nachrichtenfluss minimieren können, um die Leistung eines Nachrichtenflusses bei der Verarbeitung potenziell großer Nachrichten zu verbessern.
Informationen zu Beispielen können nur bei Verwendung des in das WebSphere Message
Broker Toolkit integrierten bzw. online verfügbaren Information Center angezeigt werden. Muster können nur ausgeführt werden, wenn das im
WebSphere Message
Broker Toolkit integrierte Information Center verwendet wird.
- Nachrichtenformat
- Obwohl WebSphere Message
Broker mehrere Nachrichtenformate unterstützt und
Funktionen zur Umwandlung von einem Format in ein anderes bereitstellt, hat dies einen zusätzlichen
Verarbeitungsaufwand im Broker zur Folge. Stellen Sie sicher, dass keine unnötigen Konvertierungen oder
Umwandlungen ausgeführt werden.
Weitere Informationen zur Verbesserung der Leistung eines
Nachrichtenflusses finden Sie in einem developerWorks-Artikel (developerWorks-Artikel zur Nachrichtenflussleistung).