Repository navigation
Apache RocketMQ Studio 3.0.0 is the first stable release of the 3.x line and the successor to
RocketMQ Dashboard 2.x — a rebranded, AI-native management console for Apache RocketMQ.
About the names. The Git repository remains
apache/rocketmq-dashboard, the product is
RocketMQ Studio, and the Maven artifact isorg.apache.rocketmq:rocketmq-studio. If you are on
Dashboard 2.x, this is the 3.x upgrade of the same codebase.
Highlights
AI-native operations console
- Built-in AI conversation platform with streaming responses, tool calling, and multi-turn context
- Agent integration over MCP (Model Context Protocol) — Claude Code and Qoder CLI work as backend agents
- Natural-language cluster diagnostics across topics, consumer groups, messages, and broker health
- Tool playground for interactive MCP tool exploration, plus LiteTopic list/session/quota read tools
and thermq.litetopic.extend_ttlmutation tool - Bounded prose history in HTTP conversations, and bounded DLQ resend failure details so tool output
stays readable instead of truncating arbitrarily
Multi-cloud instance management
- One console for self-hosted Apache RocketMQ, Alibaba Cloud RocketMQ 5.x, and Tencent Cloud Trocket
- Provider abstraction with instance-scoped API isolation per cloud vendor
- Instance region filter, and Lite-topic (LMQ) management with explicit TTL and subscription cleanup
- Direct message consumption against cloud instances
Resource ownership isolation
- Global topic / consumer-group ownership guard prevents cross-instance write conflicts on shared
open-source clusters - Uniqueness is scoped to the nameserver domain, so two clusters behind different nameservers may
reuse a name while one nameserver domain stays globally unique - Deterministic write-target resolution replaces the previous "first cluster wins" fallback
- Idempotent schema migration validates existing names at startup, and the naming rule is surfaced
directly on the create forms
Authentication, session and ACL lifecycle
- Complete account lifecycle: role change, deletion, lockout visibility, forced password rotation
- Complete session lifecycle: idle timeout, revocation controls, client attribution, expiry redirect
- Stored ACL accounts and policies can be pushed to Apache brokers; the ACL page is restructured
around that flow HttpOnlysession cookies for browsers, explicit bearer tokens for API clients
Alerting, audit and metrics
- Native alerting with rule evaluation fencing, so stale evaluations cannot overwrite fresh state
- Cluster-alerts hub, operator filter on the audit feed, and readable audit operation names
- Notification delivery filtering by time and text
- Metrics jobs stop at checkpoints instead of running on after cancellation
rmqctl CLI and MCP server
rmqctlships as a Go CLI with a generated tool catalog that CI verifies against the server-side
definition, cross-platform builds, and shell completions
Since the 3.0.0 preview
415 commits from 34 contributors landed between v3.0.0-preview (2026-09-23) and this release —
18 features and 369 fixes, concentrated in the web console, AI conversations, alerting, rmqctl,
and metrics.
Release hardening in the same window:
- Apache RAT license-header gate over the whole repository (not just Java), with its own CI job
- A per-artifact license determination gate on the distributed fat JAR: every embedded dependency
carries either its own license text or an explicit recorded determination, and an unrecorded
dependency fails the build groupIdcorrected toorg.apache.rocketmq- fastjson 1.x excluded from the dependency tree (only fastjson2 remains)
- The bundled demo RocketMQ cluster is pinned to the released
rocketmq-all-5.5.0tag instead of
trackingdevelop, matching therocketmq.versionbaseline
The trunk commit this release is cut from (3a443e9a1) is green across all six CI jobs: backend
build and tests against a real MySQL, frontend lint / test / license-test / build / Docker build,
rmqctl fmt / catalog-verify / race / vet / build-all, and the RAT license-header gate. The one
commit on top of it (#7368) touches only
deploy/rocketmq/ and the .claude/ tooling — no Java, TypeScript or Go source — and was verified
locally with a passing apache-rat:check and a real deploy/rocketmq/build.sh image build.
Release artifacts
This release is published as a signed Git tag; the tag is the source of truth.
- Tag:
v3.0.0, GPG-signed with key
09D58134D2DA90B296ABCB77D5C871BAC9D394D2(lizhimin <lizhimin@apache.org>), recorded in
KEYS - The
Source codearchives attached below are generated by GitHub from that tag - No binary distribution and no pre-built Docker images are published. Build from source as
described in the README;server/Dockerfileandweb/Dockerfileproduce the runtime images locally - This release was not distributed through
dist.apache.organd did not go through a PMC vote, so
treat the tag — not a downloaded archive — as the release
Deployment
# 1. Create the shared Docker network (the compose files attach to it as external)
docker network inspect rocketmq_net >/dev/null 2>&1 || docker network create rocketmq_net
# 2. Build and start RocketMQ Studio (mysql + rocketmq-server + rocketmq-web)
docker compose -f deploy/docker-compose.yml up -d --buildThen visit http://127.0.0.1:6789. This starts Studio and its own MySQL database only — register an
instance pointing at your own RocketMQ to manage real resources, or start the optional bundled demo
cluster (nameserver, two brokers, proxy, a 1 TPS load generator, Prometheus) with
docker compose -f deploy/rocketmq/docker-compose.yml up -d.
To build the backend jar directly:
cd server && mvn package -DskipTests
java -jar target/rocketmq-studio-3.0.0.jar # H2 only — see Upgrade notes for MySQLSee the README
for full setup instructions, including AI agent configuration and login protection
(STUDIO_AUTH_LOGIN_REQUIRED).
Upgrade notes
- Database schema migrates automatically on first startup (H2 or MySQL)
deploy/mysql/upgrade-*.sqlare sample-data loaders, not upgrade migrations — never import
them into a production database- Topic and group uniqueness is now scoped to the nameserver domain. Existing names are validated at
startup; if a conflict is detected inside one domain, startup fails with a clear error — resolve it
before upgrading - The bundled demo cluster now builds from
rocketmq-all-5.5.0. If you previously built
apache-rocketmq:develop, rebuild (deploy/rocketmq/build.sh) so the compose image tag resolves mysql-connector-jis GPL and is deliberately excluded from the fat jar (providedscope). The
Dockerfile downloads it into/app/liband starts the app with
-Dloader.path=/app/lib org.springframework.boot.loader.launch.PropertiesLauncher, because
java -jarrunsJarLauncher, which ignoresloader.path. Running the jar outside Docker against
MySQL needs the same launcher — a plainjava -jarhas no MySQL driver and fails with
Cannot load driver class: com.mysql.cj.jdbc.Driver
What's Changed
3.0.0 is 1155 commits from 53 contributors since Dashboard 2.1.0 (2025-08-01): 1902 files changed,
329644 insertions and 46987 deletions.
- Full 3.x changelog (since Dashboard 2.1.0, 2025-08-01):
rocketmq-dashboard-2.1.0...v3.0.0 - Since the preview:
v3.0.0-preview...v3.0.0