- Hands-On Microservices with C#
- Matt R. Cole
- 388字
- 2021-07-23 17:25:19
Message queues
Throughout this book, we will be dealing a lot with message queues. You will also see it prevalent in the software we are developing. Messaging queues are how our ecosystem communicates, maintains separation of concerns, and allows for fluid and fast development. With that being said, before we get too far along into something else, let's spend some time discussing exactly what message queues are and what they do.
Let's think about the functionality of a message queue. They are two sided components; messages enter from one side and exit from the other one. Thus, each message queue can establish connections on both sides; on the input side, a queue fetches messages from one or more exchanges, while on the output side, the queue can be connected to one or more consumers. From the single queue point of view being connected to more than one exchange with the same routing key, this is transparent, since the only thing that concerns the message queue itself are the incoming messages:

Put another way...
The basic architecture of a message queue is simple. There are client applications called producers that create messages and deliver them to the broker (the message queue). Other applications, called consumers, connect to the queue and subscribe to the messages to be processed. A software can be a producer, or consumer, or both a consumer and a producer of messages. Messages placed onto the queue are stored until the consumer retrieves them:

And, breaking that down even further:

The preceding diagram illustrates the following process:
- The user sends a PDF creation request to the web application
- The web application (the producer) sends a message to RabbitMQ, including data from the request, such as name and email
- An exchange accepts the messages from a producer application and routes them to correct message queues for PDF creation
- The PDF processing worker (the consumer) receives the task and starts the processing of the PDF
Let's now look at some of the different message queue configurations that we can use. For now, let's think of a queue as an ordered collection or list of messages. In the diagrams that follow, we're going to use P to represent a producer, C to represent a consumer, and the red rectangles to represent a queue.
Here's our legend:



- Clojure Data Analysis Cookbook
- 走入IBM小型機世界
- WOW!Illustrator CS6完全自學寶典
- Hands-On Cybersecurity with Blockchain
- 大數據挑戰與NoSQL數據庫技術
- CompTIA Linux+ Certification Guide
- 高維聚類知識發現關鍵技術研究及應用
- 西門子變頻器技術入門及實踐
- Extending Ansible
- Mastering Ansible(Second Edition)
- 電腦故障排除與維護終極技巧金典
- 西門子S7-1200/1500 PLC從入門到精通
- Effective Business Intelligence with QuickSight
- 計算機硬件技術基礎(第2版)
- Java Deep Learning Projects