2. Message Queues und Mailboxen sind Kommunikationsprotokolle
Sie verwenden eine Warteschlange für die Nachricht (Messaging)
und beinhalten Managementfunktionen zur Weitergabe der
Kontrolle oder des Inhalts.
Message Queue ist ein Geschwister des Publish-Subscribe Patterns
3. Publish-Subscribe ist in der Softwarearchitektur ein Messaging Pattern
(Nachrichtenmuster), bei dem Absender von Nachrichten, sogenannte Publisher,
nicht die Nachrichten programmieren, die direkt an bestimmte Empfänger,
sogenannte Subscribers, gesendet werden sollen, sondern veröffentlichte
Nachrichten in Klassen einteilen, ohne zu wissen, welche Subscriber vorhanden
sind.
4. Ein typisches Publish/Subscribe-System hat mehrere Publisher und
mehrere Subscribers. Eine Anwendung kann sowohl Publisher als
auch Subscriber sein.
Derjenige, der die Informationen bereitstellt, wird als Publisher
bezeichnet. Publisher stellen Informationen zu einem Thema bereit,
ohne dass sie etwas über die an diesen Informationen interessierten
Anwendungen wissen müssen. Die Publisher generieren diese
Informationen in Form von Nachrichten, die sie veröffentlichen
möchten und definieren das Topic dieser Nachrichten.
5.
6.
7. Eine Message Queue ist ein Nachrichten Stream, der sich in der Regel an genau
einen Consumer richtet.
In Publish/Subscriber können Sie eine beliebige Anzahl von Abonnenten
(einschließlich Null) haben, die dieselben Nachrichten abhören.
8. Ist auf RabbitMQ basiert
RabbitMQ ist eine Open Source Message Broker Software, die das Advanced
Message Queuing Protocol (AMQP) implementiert
AMQP ist ein offener Standard, der ein binäres Netzwerkprotokoll auf
Anwendungsebene für eine Message-orientierte Middleware (MOM) darstellt
9. Magento Open Source enhält Message Queue Integration ab 2.3.0
Vorher – nur in Magento Commerce.
Magento Open Source bis 2.3.0 - https://github.com/renatocason/magento2-
module-mq-amqp
10.
11. Publisher schickt Nachricht an Exchange. Publisher „kennt“ Exchange und das
Format
Exchange bekommt Nachrichten von Publishers und schickt die an Queues.
Magento nutzt nur Topic Exchanges.
Format: Routing Key, das enhält Text Strings, die durch Punkte getrennt sind.
Topic Format Beispiel:
customer.created
customer.sent.email
Wildcards können auch verwendet werden: customer.*
12. Queue ist Buffer, hier sind Messages gespeichert.
Consumer bekommt Nachrichten (Messages), “weiß“ was für eine Queue
genommen werden sollte.
MQF kann auch Datenbank anstatt RabbitMQ nutzen, dann werden folgende
Tabellen verwendet:
queue
queue_message
queue_message_status
15. queue_publisher.xml – definiert Exchange, wo Topic publiziert wird.
queue_consumer.xml - definiert Beziehung zwischen Queue und Consumer.
queue_topology.xml – definiert Message Routing Rules und deklariert Queues und
Exchanges.
communication.xml – definiert gemeinsame Aspekte vom Message Queue System,
dass alle Kommunikationstype haben.