SlideShare a Scribd company logo
Anastasiia Miednykh, Magento 1/2 Developer, netz98 GmbH
M2 Professional Developer
M2 Associate Developer
 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
 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.
 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.
 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.
 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
 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
 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.*
 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
 queue_publisher.xml
 queue_consumer.xml
 queue_topology.xml
 communication.xml
 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.
 RabbitMQ Installation (Mac OS):
brew install rabbitmq
 Start:
brew services start rabbitmq
 Stop:
brew services stop rabbitmq
 Dieser Code schickt Info in Message Queue:
 publish Methode wird in PublisherInterface definiert.
 data – Object/Array.
 php bin/magento queue:consumers:list
 quoteItemCleaner
 inventoryQtyCounter
 async.operations.all
 advancedIndexerConsumer
 …
 php bin/magento queue:consumers:start consumerName
 https://magento-devdocs.github.io/devdocs-for-tests/guides/v2.3/extension-dev-
guide/message-queues/config-mq.html
 https://devdocs.magento.com/guides/v2.3/extension-dev-guide/message-
queues/config-mq.html
 https://streaml.io/resources/tutorials/concepts/messaging-and-queuing
 https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html
 https://webkul.com/blog/here-we-will-learn-how-to-configure-and-use-rabbitmq-in-
magento-2-3/
 https://inviqa.com/blog/magento-2-tutorial-message-queues
 Wikipedia
 https://www.xing.com/profile/Anastasia_Miednykh
 https://www.linkedin.com/in/avmednykh/
 https://twitter.com/cuprumova

More Related Content

Featured

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 

Message queue in Magento 2

  • 1. Anastasiia Miednykh, Magento 1/2 Developer, netz98 GmbH M2 Professional Developer M2 Associate Developer
  • 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
  • 13.
  • 14.  queue_publisher.xml  queue_consumer.xml  queue_topology.xml  communication.xml
  • 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.
  • 16.  RabbitMQ Installation (Mac OS): brew install rabbitmq  Start: brew services start rabbitmq  Stop: brew services stop rabbitmq
  • 17.
  • 18.
  • 19.  Dieser Code schickt Info in Message Queue:  publish Methode wird in PublisherInterface definiert.  data – Object/Array.
  • 20.
  • 21.  php bin/magento queue:consumers:list  quoteItemCleaner  inventoryQtyCounter  async.operations.all  advancedIndexerConsumer  …
  • 22.  php bin/magento queue:consumers:start consumerName
  • 23.
  • 24.  https://magento-devdocs.github.io/devdocs-for-tests/guides/v2.3/extension-dev- guide/message-queues/config-mq.html  https://devdocs.magento.com/guides/v2.3/extension-dev-guide/message- queues/config-mq.html  https://streaml.io/resources/tutorials/concepts/messaging-and-queuing  https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html  https://webkul.com/blog/here-we-will-learn-how-to-configure-and-use-rabbitmq-in- magento-2-3/  https://inviqa.com/blog/magento-2-tutorial-message-queues  Wikipedia