mrkeyoor.com_
Fri 11 Sept 06:45 UTC
Dataevaluationupdated 11 Sept 2026

rocketmq review

Apache RocketMQ 5.5.1 is a distributed message broker for moving events between services, keeping them until consumers are ready, and supporting ordered or transactional delivery. It targets systems that need more control over routing, retries, storage, and failure handling than a process-local queue can provide.

Verdict

Our RocketMQ run installed in 72 seconds and built in 212 seconds, then 3 of 322 tests ended in setup or collection errors. That result supports a serious evaluation, not a casual approval: the code builds and most executed tests pass, yet the complete gate is red. Choose RocketMQ when its transaction, ordering, and replay features justify running dedicated messaging infrastructure; smaller services should first price the operational work against RabbitMQ or a managed broker.

We ran it

Lab card: what happened when we ran rocketmqScreenshot of rocketmq (rocketmq.apache.org)
Install✓ · 72s
Build✓ · 212s
Tests✗ · 57s137 passed · 0 failed · 182 skipped · 3 errors of 322 (maven surefire)
Repo2794 files~396,384 lines of source · 24.4 MB · 9 CI workflows · tests dir

Answers from our run

Does rocketmq build from source?

Dependencies installed in 72 seconds, and the build succeeded in 212 seconds. We cloned commit d38f81e into a clean Debian container with 3 CPUs and no project-specific setup.

Do rocketmq's tests pass?

Yes: 137 of 322 passed when we ran the project's own test command (maven surefire), with 3 collection errors. Some failures need services or credentials a bare container does not have.

Who should not use rocketmq?

Teams requiring a clean JVM 21 test gate from the checked-out commit: our 322-test run ended with 3 collection or setup errors.

What are the alternatives to rocketmq?

Apache Kafka, Apache Pulsar, RabbitMQ. Our RocketMQ run installed in 72 seconds and built in 212 seconds, then 3 of 322 tests ended in setup or collection errors.

Setup3/572-second install and 212-second build; cluster setup is separate
Docs4/5Good quick start and operating guides, spread across projects
Community5/522,588 stars, a fresh push, and an August 2026 release
Maturity4/5Version 5.5.1 is active, but our full test command stayed red

Who it’s for

Java platform teams building on RocketMQ 5.x who need publish and subscribe, request and reply, or streaming patterns.
Operators prepared to own NameServer, broker storage, replication, monitoring, and access policy.
Applications that need ordered messages, delayed delivery, transaction messages, or replay by time and offset.
Organizations that prefer an Apache-licensed broker with separate official clients and deployment projects.

Who it’s NOT for

Teams requiring a clean JVM 21 test gate from the checked-out commit: our 322-test run ended with 3 collection or setup errors.
Small applications that do not need distributed broker operations: even the local quick start launches a NameServer and broker, while production adds replication choices.
Operators expecting one source repository to contain the container build, dashboard, and Kubernetes controller: the README points to separate RocketMQ projects for each.
Security teams unwilling to configure broker permissions and secrets explicitly: the ACL guide requires access keys, secret keys, topic or group permissions, and the aclEnable switch.

Setup reality

Our JVM 21 sandbox installed RocketMQ in 72 seconds and built it in 212 seconds. Tests then failed with exit code 1 after 57 seconds: Surefire recorded 137 passed, 0 failed, 182 skipped, and 3 collection or setup errors out of 322.

A basic local trial needs Java and starts a NameServer plus a broker. Production needs network addresses, durable storage, replication and flush choices, client configuration, monitoring, and explicitly configured ACL keys and permissions. Docker, the dashboard, and the Kubernetes operator are separate projects.

The checkout had 2,794 files, about 396,384 source lines, and occupied 24.4 MB before the build. Our scan found 9 CI workflow files, a tests directory, and no Dockerfile. The README accepts JDK 8 or newer, while our measured path used JVM 21.

RocketMQ 5.5.1 is a broker platform, not a client library

RocketMQ 5.5.1 sits between producers and consumers, stores messages, and routes them according to topics and queues. The README documents publish and subscribe, request and reply, transactional messages, strict order within a queue, delayed delivery, tracing, filtering, and replay by time or offset. It also names gRPC, MQTT, JMS, and OpenMessaging support. This breadth makes sense for business events that outlive one request, especially when delivery order or a transaction boundary matters.

The breadth carries weight. Our checkout contained 2,794 files and about 396,384 source lines, occupying 24.4 MB before build output. RocketMQ is a set of server, client, storage, proxy, controller, tools, and example modules rather than a dependency you drop into one service and forget. The surrounding Apache projects cover language clients, Spring integration, monitoring, a dashboard, Docker images, connectors, and a Kubernetes operator. Adoption is a platform decision with several repositories around it.

What happened when we ran it

Our measurement setup used commit d38f81e, JVM 21, 3 CPUs, and 10 GB of RAM in an unprivileged container without secrets. Installation succeeded in 72 seconds. The build also completed, taking 212 seconds. Those are credible source-build results for a repository of this size, and they show that the checked-out code compiled in the supplied Java environment without needing privileged access or external credentials.

The test command failed with exit code 1 after 57 seconds. Maven Surefire counted 137 passed, 0 failed, 182 skipped, and 3 collection or setup errors among 322 tests. The supplied log tail shows several skipped remoting tests and one module summary with 96 tests, 1 error, and 48 skipped. It ends by listing tests in error, but the last lines do not include an exception or cause. Anything more specific would be guesswork.

Our scan also found 9 CI workflow files and a tests directory, while the core checkout had no Dockerfile. That distinction matters because the README includes Docker commands using the published apache/rocketmq image. The source and image build paths are separate. A passing container pull cannot repair the red source test result, and the source result does not prove that a published image is broken. They answer different questions.

Four roles make the local quick start deceptively small

RocketMQ's architecture has 4 roles: producers, consumers, NameServers, and brokers. The architecture guide says a NameServer holds topic routing information, while brokers store and deliver messages. Producers and consumers maintain connections and refresh routes. The README's local start launches one NameServer on port 9876 and one broker, which is enough to see messages move but is not a production availability design.

The deployment guide explicitly calls its 1-master mode risky and unsuitable for production. Other documented layouts use multiple masters, or master and slave pairs with synchronous or asynchronous replication. Those choices change what happens during a machine or disk failure. Flush policy matters too: the best-practice guide says the default broker role is asynchronous master and the default disk mode is asynchronous flush. Reliability comes from configuration and application behavior, not the product name.

A 72-hour retention default and ACL switch need review

The broker table documents a 72-hour commit-log retention setting, a 1 GB mapped commit-log file size, and storage under $HOME/store/ by default. These are starting values, not capacity advice for an unknown workload. Operators need to place storage deliberately, watch disk consumption, decide whether consumers can fall behind for longer than retention, and test recovery. RocketMQ's README makes broad capacity claims, but our sandbox did not benchmark throughput or failure recovery.

Access control is another explicit setup job. The ACL operations guide describes access and secret keys, IP allowlists, administrator status, and permissions for topics and consumer groups. It tells operators to turn on aclEnable in broker configuration. A production review should also cover network exposure, TLS, key rotation, and who can create topics. The 3-CPU lab used no secrets and did not exercise authentication.

Release activity is current despite 669 open items

GitHub recorded a push on September 11, 2026, and listed 669 combined issues and pull requests. The latest release, 5.5.1, arrived August 20. Its notes include removal of fastjson 1.x, an update to fastjson2 2.0.63, a DLedger update, a native RocksDB compaction filter, and fixes across storage, broker, proxy, client, testing, and documentation. That is current maintenance on several operationally sensitive areas, not a dormant queue.

The 669-item count is still large enough that evaluators should search for their exact client, protocol, storage mode, and upgrade path. Recent activity included proxy administration and TLS work alongside many broker correctness changes. RocketMQ has 22,588 stars, but stars do not settle whether one deployment mode is safe for your failure budget. Pin 5.5.1 or a reviewed commit, reproduce the relevant tests, and stage broker loss before moving critical events.

The failed 322-test gate keeps this at evaluation status

Our 322-test gate failed with 3 setup or collection errors, so commit d38f81e remains an evaluation candidate. RocketMQ offers a serious answer when ordered delivery, transaction messages, replay, and several client protocols belong in one messaging system. The 72-second install and successful 212-second build lower the cost of inspecting it, while 137 passing tests show useful coverage executed. First reproduce the 3 errors with the complete log, then run an actual NameServer and broker under the topology you intend to operate.

Alternatives

ProjectWhat it isPick it when
Apache Kafka gh↗A distributed event streaming platform with a large connector and processing ecosystem.pick this instead when durable event logs and the Kafka ecosystem are already your organization's standard.
Apache PulsarA distributed publish and subscribe system with a different storage and serving architecture.pick this instead when your team has validated Pulsar's operating model for its tenancy and geographic requirements.
RabbitMQ gh↗A general-purpose message broker with built-in server plugins and familiar queue routing.pick this instead when conventional work queues and broker routing fit better than RocketMQ's log-oriented scale-out design.

What people are saying

  1. [velocity-scout] apache/rocketmq

Sources

  1. Apache RocketMQ README
  2. Apache RocketMQ repository facts
  3. RocketMQ 5.5.1 release
  4. RocketMQ architecture guide
  5. RocketMQ deployment guide
  6. RocketMQ access-control operations

More data reviews

shulihuazixuecongshu · free-programming-books · Ontology-Playground · awesome-osint · data-engineering-zoomcamp · zju-icicles · the whole board →