Heim >Java >javaLernprogramm >Was ist ein asynchroner Kommunikationsprozess mit lose gekoppelten Nachrichten?
Was ist eine Nachricht?
Los gekoppelter asynchroner Kommunikationsprozess
1. Nachrichtenorientierte Middleware (MOM): Nachrichtensender wird aufgerufen der Produzent; der Ort, an dem die Nachricht gespeichert ist, wird als Ziel bezeichnet; die Komponente, die die Nachricht empfängt, wird als Verbraucher bezeichnet
2
a. Punkt-zu-Punkt: Das Ziel wird zu einer Warteschlange und die Nachricht kann nur einmal verwendet werden
b. Publish-Subscribe: Das Ziel wird zum Betreff, der Verbraucher wird als Abonnent bezeichnet und die Nachricht kann von einer beliebigen Nummer konsumiert werden
a. Verwenden Sie die Abhängigkeitsinjektion, um die Verbindungsfabrik ConnectionFactory und die Zielobjekte
abzurufen
b. Verwenden Sie createConnection der Verbindungsfabrik, um die Verbindung Connection
zu öffnen
c. Verwenden Sie createSession of Connection, um eine Sitzung zu erstellen und Transaktionsparameter anzugeben
d. Verwenden Sie den createProducer der Sitzung, um den Frachtwarteschlangenproduzenten zu erstellen
e. Verwenden Sie createMessage of Session, um eine Nachricht zu erstellen und
festzulegen
f. Verwenden Sie den Producer zum Senden der Frachtwarteschlange, um die Nachricht
zu senden
g. Ressourcen freigeben
Hinweis: Der obige Prozess basiert auf JavaEE 6. JavaEE 7 bietet einen einfacheren A-Entwicklungsprozess
a. Die MDB-Klasse muss direkt oder indirekt die Nachrichten-Listener-Schnittstelle
implementieren
b. Es muss konkret und öffentlich sein, es darf keine endgültige oder abstrakte Klasse sein
c. Es muss ein POJO sein und darf keine Unterklasse einer anderen MDB sein
d. Es muss ein Konstruktor ohne Parameter vorhanden sein
e. Es kann keine endgültige Methode geben
f. Es kann keine Laufzeitausnahme ausgelöst werden, da die MDB-Instanz beendet wird, wenn sie ausgelöst wird
a. Verwenden Sie die Annotation @MessageDriven, um die Klasse als MDB zu markieren und die MDB-Konfiguration anzugeben
b. Implementieren Sie die MessageListener-Schnittstelle und implementieren Sie die onMessage-Methode
c. Implementieren Sie die Logik in onMessage
a. DestinationType: informiert den Container, ob die MDB auf eine Warteschlange oder ein Thema
lauscht
b. ConnectionFactoryJndiName: Gibt die Verbindungsfabrik JDNI
an, die zum Erstellen der JMS-Verbindung der MDB verwendet wird
c. destianName: Geben Sie das Abhörziel
an
d. AcknowledgeMode: Geben Sie den JMS-Sitzungsbestätigungsmodus an
e. subscriptionDurability: wird verwendet, um als dauerhafter Abonnent festzulegen
f. messageSelector: Nachrichten filtern
a. Erstellen Sie MDB-Instanzen und richten Sie sie ein
b. Ressourcen injizieren
c. In einem verwalteten Pool speichern
d. Wenn Sie das Ziel ermitteln, an dem die Nachricht ankommt, entfernen Sie die inaktive Bean aus dem Pool
e. Führen Sie die Nachrichten-Listener-Methode aus, d. h. die onMessage-Methode
f. Wenn die onMessage-Methode ausgeführt wird, speichern Sie die inaktive Bean zurück im Pool
g. Bohnen nach Bedarf aus dem Pool entfernen/zerstören
7. Konfigurieren Sie die MDB-Poolgröße: Konfigurieren Sie sie entsprechend dem Szenario und den Anforderungen
EJB 3 in Aktion, Zweite Ausgabe
Das obige ist der detaillierte Inhalt vonWas ist ein asynchroner Kommunikationsprozess mit lose gekoppelten Nachrichten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!