Help Center/ Distributed Message Service for RabbitMQ/ Service Overview/ Comparing RabbitMQ AMQP-0-9-1 with Open-Source RabbitMQ
Updated on 2024-11-06 GMT+08:00

Comparing RabbitMQ AMQP-0-9-1 with Open-Source RabbitMQ

DMS for RabbitMQ of the AMQP-0-9-1 version is message-oriented middleware using the highly available distributed architecture. This version is compatible with open-source RabbitMQ clients. DMS for RabbitMQ addresses message stacking, split-brain, and other stability issues in open-source RabbitMQ. In addition, DMS for RabbitMQ features high concurrency, distributed deployment, and flexible scaling.

The following section describes the comparison by function, stability, exchange, and queue.

Functions

Table 1 Comparing functions

Function

AMQP-0-9-1

Open Source

Client SDKs

Open-source SDKs of all languages and versions are supported.

Open-source SDKs are supported.

Scheduled messages

Can be scheduled at any time, precise in seconds, and stacked massively.

By plug-ins or message time-to-live (TTL).

Transactional messages

Not supported.

Supported.

Ordered messages

Not supported.

Supported.

Message priority

Supported.

Supported.

Message retry mechanism

Supported. Messages will be re-delivered if no response is received within a specified period of consumption. Retry intervals: 1 minute. Maximum of retries: 16. Messages will be discarded or sent to dead letter exchanges later.

Not supported.

Monitoring metrics

Rich metrics of virtual host, exchange, and queue.

The following two schemes are supported:

  • 1: Management UI is available with rich metrics. The metric storage and display need to be manually developed.
  • 2: Prometheus+Grafana can be used to obtain basic metrics which may not ensure precision.

Message tracing

A whole message lifecycle can be traced and displayed on a white screen. Messages can be indexed by queue, message ID, and message processing duration.

Message traces are stored by text in the log file on servers. Querying or locating may be inefficient.

Stability

Table 2 Comparing stability

Function

AMQP-0-9-1

Open Source

Message stacking

Massive messages are allowed to be stacked. High performance is not affected.

Stacked messages easily cause memory-induced breakdown.

Scalability

An architecture of distributed clusters without masters supports rapid scale-out of clusters.

Expansions and reductions by changing machine specifications.

Service availability

99.95% achieved by distributed clusters across availability zones (AZs).

Developed by Erlang. Experiential O&M. Stability issues remain unresolved.

Data reliability

Data in triple replicas, which does not affect the TPS performance.

Increasing replicas deteriorates TPS performance.

Inspection

Dead locks or breakdowns can be automatically detected and rectified.

None.

Exchange

Table 3 Comparing exchanges

Function

AMQP-0-9-1

Open Source

Exchange type

Direct, fanout, headers, topic, x-delayed-message and x-consistent-hash.

Direct, fanout, headers, topic, x-delayed-message and x-consistent-hash.

Persistence

Enabled by default.

Can be configured.

Automatic deletion

Supported.

Supported.

Internal

Not supported.

Supported.

Alternate exchange

Not supported.

Supported.

Consistent hash exchange

Supported.

Supported.

Queue

Table 4 Comparing queues

Function

AMQP-0-9-1

Open Source

Queue type

Distributed high availability clusters by default.

The following types can be configured:

  • Classic
  • Quorum

Node

O&M-free by default.

Needs to be configured.

Persistence

Enabled by default.

Persistence or non-persistence is supported.

Max length

By default, massive messages can be stacked.

Needs to be configured to avoid system breakdowns due to message stack-induced memory issues.

Max length bytes

By default, massive messages can be stacked.

Needs to be configured to avoid system breakdowns due to message stack-induced memory issues.

Max in memory length

By default, massive messages can be stacked.

Needs to be configured to avoid system breakdowns due to message stack-induced memory issues.

Max in memory bytes

By default, massive messages can be stacked.

Needs to be configured to avoid system breakdowns due to message stack-induced memory issues.

Delivery limit

Fixed, 16 by default.

Needs to be configured.

Dead letter exchange

Supported.

Supported.

Dead letter routing key

Supported.

Supported.

Single active consumer

Not supported.

Supported.