Understanding of Message Middleware

Source: Internet
Author: User
Keywords middleware message middleware middleware technologies
1. Brief description of message middleware
Message queuing middleware (referred to as message middleware) refers to the use of efficient and reliable message delivery mechanisms for platform-independent data exchange, and the integration of distributed systems based on data communication. By providing message passing and message queuing models, it can provide application decoupling, elastic scaling, redundant storage, traffic peaking, asynchronous communication, data synchronization, and other functions in a distributed environment. It serves as a distributed system architecture. Important components have a pivotal position.

At present, the open source message middleware can be described as a dazzling array, and there are many familiar to everyone, such as ActiveMQ, RabbitMQ, Kafka, RocketMQ, ZeroMQ, etc. No matter which one you choose, it will have its unique advantages and disadvantages. Some large manufacturers have accumulated certain experience in the long-term use process, and the use scenarios of their message queues are relatively stable and solidified, or the current message middleware on the market cannot meet their own needs, and they also have enough energy and manpower to choose their own Yanlai has tailored a message middleware for itself. But most companies will not choose to repeat the wheel, but choose a message middleware that suits them.

2. Message middleware products
1. ActiveMQ
ActiveMQ is a message-oriented middleware produced by Apache, written in Java language and completely based on the JMS1.1 specification. It implements the AMQP protocol message-oriented middleware, and provides efficient, scalable, stable and secure enterprise-level message communication for applications .

2. RabbitMQ
RabbitMQ is a message middleware using the AMQP protocol implemented in Erlang language. It originally originated in the financial system and used to store and forward messages in a distributed system. RabbitMQ has developed to today and is recognized by more and more people, which is inseparable from its outstanding performance in reliability, usability, scalability, and rich features.

AMQP (Advanced Message Queuing Protocol) is an application layer protocol specification used for asynchronous message delivery. It is designed for message-oriented middleware. Clients and message middleware based on this protocol can transmit messages regardless of the source of the message. Restrictions on software, different development language environments, etc.

Support mainstream operating systems: Linux, Windows, MacOX, etc.;
Support multiple client development languages: Java, Python, Ruby, .NET, PHP, C/C++, Node.js, etc.

For more information about Rabbit MQ, please check the column: "RabbitMQ Tutorial"

3. Kafka
Kafka was originally a distributed, multi-partition, multi-copy and zookeeper-based distributed messaging system developed by LinkedIn in Scala language. It has now been donated to the Apache Foundation. It is a high-throughput distributed publish-subscribe messaging system that is widely used with horizontal scalability and high throughput. At present, more and more open source distributed processing systems such as Cloudera, Apache Storm, Spark, Flink, etc. support integration with Kafka.

4. RocketMQ
RocketMQ is Alibaba’s open source messaging middleware. It has already donated an Apache Foundation. It is developed by the Java language and has the characteristics of high throughput, high availability, and suitable for large-scale distributed system applications. It has experienced the baptism of Double 11. Strength should not be underestimated.

5. ZeroMQ
ZeroMQ is known as the fastest message queue in history, based on C language development. ZeroMQ is a message processing queue library that can be elastically scaled between multithreading, multicore and host. Although most of the time we are used to classify it into the message queue family, but it is essentially different from the previous ones. ZeroMQ itself is not a message queue server, but more like a set of underlying network communication libraries, adding a layer of encapsulation to the original Socket API.

6. Other
There are many messaging middlewares currently on the market, such as Tencent’s PhxQueue, CMQ, CKafka, and Go language-based NSQ. Sometimes people also regard Redis-like products as a kind of messaging middleware. Of course, they are all Very good, this article will not introduce them one by one.

Three, message middleware workflow
The working process of message middleware can be represented by the producer consumer model. That is, the producer continuously sends information to the message queue, and the consumer consumes information from the message queue.
For message queues, producers, message queues, and consumers are the three most important concepts. The producer sends a message to the message queue, and the consumer monitors the specified message queue, and when the message queue receives the message, it receives the message from the message queue and gives the corresponding treatment. Message queues are often used to transfer information between distributed systems.
Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.