Home Common Problem What are message queues?

What are message queues?

Jun 29, 2020 am 11:30 AM
message queue

The message queues include: 1. RabbitMQ, which is a reusable enterprise messaging system based on AMQP. It is one of the most mainstream message middlewares currently; 2. ActiveMQ, which is a fully supported [JMS Provider] implementation of JMS1.1 and J2EE1.4 specifications.

What are message queues?

1 RabbitMQ

RabbitMQ was released in 2007 and is based on AMQP (Advanced Message Queuing Protocol). A reusable enterprise messaging system, it is one of the most mainstream messaging middleware currently.

Main features:

  • Reliability: Provides a variety of technologies that allow you to trade off between performance and reliability. These technologies include persistence mechanisms, delivery confirmations, publisher confirmations, and high availability mechanisms;

  • Flexible routing: Messages are routed through switches before arriving at the queue. RabbitMQ provides several built-in switch types for typical routing logic. If you have more complex routing requirements, you can combine these switches. You can even implement your own switch type and use it as a RabbitMQ plug-in;

  • Message cluster: in Multiple RabbitMQ servers in the same LAN can be aggregated together and used as an independent logical agent;

  • Queue high availability: The queue can be mirrored on machines in the cluster to Ensure message security despite hardware problems;

  • Multiple protocol support: support multiple message queue protocols; the server side is written in Erlang language, supporting everything you can think of Programming language;

  • Management interface: RabbitMQ has an easy-to-use user interface that allows users to monitor and manage many aspects of the message Broker;

  • Tracking mechanism: If the message is abnormal, RabbitMQ provides a message tracking mechanism so that users can find out what happened;

  • Plug-in mechanism: Many plug-ins are provided to expand in many aspects. You can also write your own plug-in;

2 ActiveMQ

ActiveMQ is produced by Apache, ActiveMQ is a fully supports JMS1.1 and J2EE 1.4 Standard JMS Provider implementation. It is very fast, supports multiple language clients and protocols, can be easily embedded into enterprise application environments, and has many advanced features.

Main features:

  • Comply with JMS specification: JMS specification provides good standards and guarantees, including: synchronous or asynchronous message distribution, once and only once messages Distribution, message reception and subscription, etc. The advantage of complying with the JMS specification is that these basic features are available regardless of which JMS implementation provider is used;

  • Connectivity: ActiveMQ provides a wide range of connection options, and the supported protocols are : HTTP/S, IP Multicast, SSL, STOMP, TCP, UDP, XMPP and more. Support for many protocols gives ActiveMQ great flexibility.

  • Supports many types of protocols: OpenWire, STOMP, REST, XMPP, AMQP;

  • Persistence plug-in and security plug-in: ActiveMQ provides Multiple persistence options. Moreover, the security of ActiveMQ can also be fully customized for authentication and authorization based on user needs;

  • supports many types of client languages: in addition to Java, there are also: C/ C, .NET, Perl, PHP, Python, Ruby;

  • Agent cluster: Multiple ActiveMQ brokers can form a cluster to provide services;

  • Exceptionally simple management: ActiveMQ is designed with developers in mind. Therefore, it does not require a dedicated administrator as it provides simple and easy-to-use management features. There are many ways to monitor data at different levels of ActiveMQ, including using JMX in JConsole or ActiveMQ's Web Console, by processing JMX alarm messages, by using command line scripts, You can even monitor various types of logs.

3 RocketMQ

RocketMQ is an open source product from Alibaba. It is implemented in the Java language. It referred to Kafka during the design and made some of its own Improved, message reliability is better than Kafka. RocketMQ is widely used in Alibaba Group in order, transaction, recharge, stream computing, message push, log streaming, binglog distribution and other scenarios.

  • is a queue model message middleware with high performance, high reliability, high real-time and distributed characteristics;

  • Producer, Consumer , queues can be distributed;

  • Producer sends messages to some queues in turn, and the queue collection is called Topic. If Consumer does broadcast consumption, one consumer instance consumes all queues corresponding to this Topic. , if you do cluster consumption,

  • multiple Consumer instances will consume the queue set corresponding to this topic on average;

  • can ensure strict message order. ;

  • Provide rich message pull mode;

  • Efficient subscriber horizontal expansion capability;

  • Real-time message subscription mechanism;

  • Billion-level message accumulation capability;

  • Less dependencies;

4 Kafka

Apache Kafka is a distributed message publishing and subscription system. It was originally implemented by LinkedIn as a distributed commit log system (a distributed commit log) based on a unique design, and later became part of the Apache project. Kafka systems are fast, scalable, and durable. Its partitioning characteristics, replicability and fault tolerance are all good features.

  • Fast persistence, message persistence can be performed with O(1) system overhead;

  • High throughput, on an ordinary computer The throughput rate of 10W/s can be achieved on the server;

  • . Completely distributed system, Broker, Producer, and Consumer all natively and automatically support distribution and automatically realize load balancing;

  • Supports both synchronous and asynchronous replication HA;

  • Supports batch sending and pulling of data;

  • zero-copy: Reduce IO operation steps;

  • Data migration and expansion are transparent to users;

  • The machine can be expanded without downtime;

  • Other features: strict message sequence, rich message pull model, efficient subscriber horizontal expansion, real-time message subscription, billion-level message accumulation capability, regular deletion mechanism;

The above is the detailed content of What are message queues?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Java Websocket development practice: how to implement message queue function Java Websocket development practice: how to implement message queue function Dec 02, 2023 pm 01:57 PM

Java Websocket development practice: How to implement the message queue function Introduction: With the rapid development of the Internet, real-time communication is becoming more and more important. In many web applications, real-time updates and notification capabilities are required through real-time messaging. JavaWebsocket is a technology that enables real-time communication in web applications. This article will introduce how to use JavaWebsocket to implement the message queue function and provide specific code examples. Basic concepts of message queue

How to use message queue for asynchronous task processing in FastAPI How to use message queue for asynchronous task processing in FastAPI Jul 30, 2023 pm 09:21 PM

How to use message queues for asynchronous task processing in FastAPI Introduction: In web applications, it is often necessary to process time-consuming tasks, such as sending emails, generating reports, etc. If these tasks are placed in a synchronous request-response process, users will have to wait for a long time, reducing user experience and server response speed. In order to solve this problem, we can use message queue for asynchronous task processing. This article will introduce how to use message queues to process asynchronous tasks in the FastAPI framework.

Golang development: Build a reliable message queue using NATS Golang development: Build a reliable message queue using NATS Sep 21, 2023 am 11:21 AM

Golang development: Using NATS to build a reliable message queue, specific code examples are required Introduction: In modern distributed systems, the message queue is an important component used to handle asynchronous communication, decouple system components and achieve reliable message delivery. This article will introduce how to use the Golang programming language and NATS (the full name is "High Performance Reliable Message System") to build an efficient and reliable message queue, and provide specific code examples. What is NATS? NATS is a lightweight, open source messaging system.

The wonderful use of Redis in message queue The wonderful use of Redis in message queue Nov 07, 2023 pm 04:26 PM

The wonderful use of Redis in message queues Message queues are a common decoupled architecture used to deliver asynchronous messages between applications. By sending a message to a queue, the sender can continue performing other tasks without waiting for a response from the receiver. And the receiver can get the message from the queue and process it at the appropriate time. Redis is a commonly used open source in-memory database with high performance and persistent storage capabilities. In message queues, Redis's multiple data structures and excellent performance make it an ideal choice

How to deal with distributed transactions and message queues in C# development How to deal with distributed transactions and message queues in C# development Oct 09, 2023 am 11:36 AM

How to handle distributed transactions and message queues in C# development Introduction: In today's distributed systems, transactions and message queues are very important components. Distributed transactions and message queues play a crucial role in handling data consistency and system decoupling. This article will introduce how to handle distributed transactions and message queues in C# development, and give specific code examples. 1. Distributed transactions Distributed transactions refer to transactions that span multiple databases or services. In distributed systems, how to ensure data consistency has become a major challenge. Here are two types of

How to implement message queue using Linux script operations in Java How to implement message queue using Linux script operations in Java Oct 05, 2023 am 08:09 AM

How to use Linux script operations to implement message queues in Java requires specific code examples. Message queues are a common communication mechanism used to transfer data between different processes. In Java, we can implement message queues using Linux script operations so that we can easily send messages to or receive messages from the queue. In this article, we will detail how to implement message queues using Java and Linux scripts, and provide specific code examples. To get started with Java and Lin

In-depth understanding of the underlying implementation mechanism of Kafka message queue In-depth understanding of the underlying implementation mechanism of Kafka message queue Feb 01, 2024 am 08:15 AM

Overview of the underlying implementation principles of Kafka message queue Kafka is a distributed, scalable message queue system that can handle large amounts of data and has high throughput and low latency. Kafka was originally developed by LinkedIn and is now a top-level project of the Apache Software Foundation. Architecture Kafka is a distributed system consisting of multiple servers. Each server is called a node, and each node is an independent process. Nodes are connected through a network to form a cluster. K

How to implement a simple message queue using Redis and Golang How to implement a simple message queue using Redis and Golang Aug 01, 2023 am 08:09 AM

How to use Redis and Golang to implement a simple message queue Introduction Message queues are widely used in various application scenarios, such as decoupling system components, peak shaving and valley filling, asynchronous communication, etc. This article will introduce how to use Redis and Golang to implement a simple message queue, helping readers understand the basic principles and implementation methods of message queues. Introduction to Redis Redis is an open source in-memory database written in C language, which provides key-value pair storage and processing functions for other commonly used data structures. Redis is known for its high performance,