- Mastering RabbitMQ
- Emrah Ayanoglu Yusuf Ayta? Dotan Nahum
- 487字
- 2021-07-23 14:52:47
Message brokers and message queue
Recently, software systems evolved dramatically. Applications have to communicate with other applications, these applications can be internal and external to the application itself. For the same application, we may have different type of clients, such as browsers, mobile clients, and so on. Hence, we absolutely need a communication layer between internal applications and between applications and clients. We need to deliver different messages to different applications or clients. Delivering messages can be a bottleneck if the communication layer isn't scalable. Pursuing scalable systems for communication layer leads us to Message Brokers and Message Queues. Let's now discuss what Message Brokers and Message Queues are.
Message brokers
A Message Broker is an architectural pattern that can receive messages from multiple destinations, determine the correct destination, and route the message along the correct route, as stated in the book Enterprise Integration Patterns by Hohpe and Woolf. Message brokers enable systems to deal with messaging and routing by mediating communication among components. Once applications implement a message broker pattern, it decreases the coupling between application components.
Message Brokers are centralized, in the architectural sense, to control and manage all messages. Therefore, all of the incoming and outgoing messages are sent through Message Brokers, which analyze and deliver the messages to their correct destination. This procedural step can be understood with the following diagram:

Message Broker
Message Brokers address the following concerns in the communication layer:
- Transforming messages to alternative formats
- Routing messages to destinations
- Supporting different types of patterns to send messages
- Receiving and responding to events
- Performing message aggregation
- Persisting the message states
- Ensuring the receiving and sending of message
- Decoupling the destination software systems
Many tasks of the Message Broker need a Message Queue for exchanging or passing data to the destination. The next section covers Message Queues. We will talk about the mechanism behind Message Brokers in Chapter 3, Architecture and Messaging.
Message Queues
A Message Queue is, briefly, a queue for messaging. Queue is the basic data structure behind the functioning of a Message Queue. Message Queue operations are similar to Queue data structure operations, such as the enqueue and dequeu operations. An enqueue operation leads to adding an element to the back of the queue. A dequeue operation leads to the deletion of an element from the front of the queue.
Message Queues provide concurrent and asynchronous operations to scale applications. In a message queue, messages wait up until a message is retrieved by an application. Let's take a look at the following diagram:

Message Queue
Different types of standards and protocols define the Message Queuing specifications. Some protocols are open to everyone; however, some protocols are closed. Let's come back to our topic. RabbitMQ uses Advanced Message Queuing Protocol (AMQP) that determines the policies of the Message Queues. The next topic will cover detailed information on AMQP. Chapter 3, Architecture and Messaging, covers the detailed explanation of Message Queues.
- 構建移動網站與APP:HTML 5移動開發入門與實戰(跨平臺移動開發叢書)
- 圖解Java數據結構與算法(微課視頻版)
- HTML5游戲開發案例教程
- Elasticsearch Server(Third Edition)
- Visual C++開發入行真功夫
- Corona SDK Mobile Game Development:Beginner's Guide(Second Edition)
- Oracle GoldenGate 12c Implementer's Guide
- Spring Boot+MVC實戰指南
- Python數據可視化之美:專業圖表繪制指南(全彩)
- Modernizing Legacy Applications in PHP
- DB2SQL性能調優秘笈
- WordPress Search Engine Optimization(Second Edition)
- 實驗編程:PsychoPy從入門到精通
- Java程序設計教程
- 每個人的Python:數學、算法和游戲編程訓練營