Apache ActiveMQ 6.3 介绍与选型指南
Apache ActiveMQ 6.3.2(2026-08-29 发布)的定位、多协议消息架构、官方快速上手与同类消息中间件选型对比。
Apache ActiveMQ 6.3 介绍与选型指南
目标:讲清 Apache ActiveMQ Classic(下文简称 ActiveMQ)是什么、解决什么问题、由哪些组件构成、支持哪些协议与存储,以及在 2026 年 10 月当前版本(6.3.2)下的同类消息中间件选型对比。本文为 A1 认知篇:全部内容基于官方发行页、官方文档与 GitHub Release 联网查证编写,关键论断随文标注来源与查询日期(统一为 2026-10-18),不含本地安装实测。
一、信息基准
| 项目 | 内容 |
|---|---|
| 查询日期 | 2026-10-18 |
| 版本依据 | GitHub apache/activemq 仓库 releases/latest 返回 activemq-6.3.2(发布于 2026-08-29);ASF 官方发行目录 https://downloads.apache.org/activemq/ 当前在架 6.3.2/、6.2.10/、5.19.11/ 三个系列 |
| 系列状态 | 官方下载页《Summary Table of ActiveMQ Series Status》标注:6.2.x 为 Stable - Supported(最新补丁 6.2.4,2026-04-08);5.19.x 为 Stable - Supported;6.1.x 及以下 6.x 系列、5.18.x 及以下 5.x 系列均为 Deprecated(该页快照可能滞后,6.3.2 已于 2026-08-29 正式发布并上架官方发行目录) |
| 许可证 | Apache License 2.0(GitHub apache/activemq 仓库 license 字段:Apache-2.0) |
| 运行语言/依赖 | Java。6.2.x 系列要求 Java [17,23),Spring 6.2.16、Jetty 11.0.26;6.3.2 发布说明显示已升级至 Spring 7.0.9、Jetty 12.1.12(来源:官方下载页 Schedule & Status 表与 6.3.2 Release Notes) |
官方来源清单:
- 项目主页:https://activemq.apache.org/components/classic/
- 下载页(含系列状态表):https://activemq.apache.org/components/classic/download
- Getting Started 官方文档:https://activemq.apache.org/components/classic/documentation/getting-started
- GitHub 仓库:https://github.com/apache/activemq (Release:https://github.com/apache/activemq/releases/tag/activemq-6.3.2 )
- ASF 发行目录:https://downloads.apache.org/activemq/
二、软件概述
Apache ActiveMQ Classic 是 ASF 旗下历史最悠久的开源消息中间件之一,是一款「快速而强大的消息代理(Message Broker)」,支持多语言客户端与多种线路协议,并提供众多高级特性(来源:projects.apache.org 项目描述,查询日期 2026-10-18)。它完整实现了 JMS 规范:5.x 系列面向 Javax JMS 1.1,6.x 系列面向 Jakarta JMS 2/3.1(部分兼容)(来源:官方下载页 Schedule & Status 表)。
ActiveMQ 属于 Apache ActiveMQ 项目族中的「Classic(经典)」线。项目族另有面向下一代架构的 Apache Artemis(原 ActiveMQ Artemis,2026 年起已独立为 apache/artemis 仓库与 artemis.apache.org 站点),官方文档长期建议新项目优先评估 Artemis;Classic 线仍在持续发版(6.3.2 发布于 2026-08-29),适合存量 JMS 应用与经典部署形态的延续使用。
本次介绍的版本:ActiveMQ Classic 6.3.2(2026-08-29 发布,GitHub Release 与官方发行目录一致)。
三、核心架构
3.1 总体形态
ActiveMQ 是一个以 Java 运行的独立 Broker 进程,核心结构为:
- 传输层(Transports/Connectors):以 URI 方式配置多种连接器,常用协议包括 OpenWire(原生协议)、AMQP、MQTT、STOMP 与 WebSocket;客户端通过
ActiveMQConnectionFactory与连接 URL 接入(来源:官方文档《Configuring Transports》《Initial Configuration》)。 - 消息引擎(Broker):负责目的地(Queue/Topic)管理、消息路由、持久化分发、事务与安全(插件式认证授权)。
- 存储层(Persistence):默认内置 KahaDB 文件存储;亦支持 JDBC 存储到关系库、以及不持久化的纯内存模式,满足从开发到生产的各级需求(来源:官方文档《Persistence》)。
- Web 控制台(Web Console):内嵌 Jetty,默认 8161 端口,提供队列/主题/连接的查看、发送测试消息等管理能力,默认账号 admin/admin(来源:官方文档《Web Console》)。
- 管理接口:提供 JMX 支持查看运行状态(来源:Getting Started《Monitoring ActiveMQ Classic》)。
3.2 高可用与扩展
- Shared Storage Master/Slave:多个 broker 通过共享文件系统/JDBC 抢锁实现主备,同一时刻只有一个 master 提供服务。
- Network of Brokers(代理网络):多 broker 之间通过
duplex/static网络桥接互联,实现跨机房消息转发与负载分摊;6.3.2 发布说明中即包含对 network bridge 关闭行为的修复(来源:6.3.2 Release Notes,GitHub)。 - 嵌入式运行:可将 broker 以嵌入式方式内嵌进 JMS 应用进程,避免独立部署(来源:官方文档《How do I embed a Broker inside a Connection》)。
四、功能特性
- 多协议接入:OpenWire、AMQP 1.0、MQTT、STOMP、WebSocket 一套 broker 同时提供,跨语言客户端(Java/C/C++/Python/Go 等社区客户端均有覆盖)。
- JMS 规范兼容:6.x 支持 Jakarta JMS 2/3.1(部分),5.19.x 支持 Javax JMS 1.1 并可搭配 Jakarta 客户端,便于存量应用平滑衔接。
- 两种消息模型:Queue(点对点,负载均衡)与 Topic(发布订阅),支持持久订阅。
- 可靠投递:持久化消息、事务会话、ACK 多种模式、死信队列(DLQ)、消息过期与优先级。
- 企业集成能力:与 Apache Camel 同源生态(6.3.2 依赖升级中即包含 camel 4.22),支持虚拟目的地、复合目的地、通配符订阅、消息组、延迟投递、调度消息等高级特性。
- 安全可插拔:认证授权通过 JAAS/插件机制配置,支持 Web 控制台与 JMX 管理。
- 监控面:Web 控制台 + JMX + 统计插件,亦可对接 Prometheus 等采集(经 JMX 导出)。
五、快速上手(引自官方文档,非本地实测)
以下步骤引自官方 Getting Started(Unix Binary Installation + Starting/Testing 节,来源:https://activemq.apache.org/components/classic/documentation/getting-started ,查询日期 2026-10-18):
- 下载并解压二进制发行包:
wget http://activemq.apache.org/path/tofile/apache-activemq-x.x.x-bin.tar.gz
cd [activemq_install_dir]
tar zxvf activemq-x.x.x-bin.tar.gz
- 启动 Broker(Unix,守护方式):
cd [activemq_install_dir]/bin
./activemq start
- 验证安装——打开管理界面
http://127.0.0.1:8161/admin/(默认账号 admin/admin),导航到「Queues」创建队列并点击「Send to」发送测试消息;Broker 正常启动时日志(data/activemq.log)会出现类似如下行:
Apache ActiveMQ x.x.x (localhost, ID:...) started | org.apache.activemq.broker.BrokerService | main
- 确认监听端口:ActiveMQ Classic 默认端口为 61616,可用
netstat -nl | grep 61616检查(来源同上《Listen port》节)。 - 停止 Broker:
cd [activemq_install_dir]/bin
./activemq stop
六、适用场景与限制
适用场景:
- 存量 JMS(Javax/Jakarta)应用的吞吐型队列/主题承载,尤其是从 5.x 平滑升级到 6.x 的组织。
- 需要同时服务多种协议客户端(OpenWire/AMQP/MQTT/STOMP)的统一消息接入层。
- 与 Spring/Camel 体系深度集成的企业集成(EIP)场景。
- 需要嵌入式 broker 或中小规模主备高可用的单体应用/子系统。
限制:
- Classic 线代码基线较老,官方生态的重心(及性能演进)更多在 Artemis;新项目应先评估 Artemis 再决定是否选 Classic。
- 6.3.2 尚未出现在官方下载页的系列状态表中(页面快照滞后),生产选型时需自行核对 6.3.x 系列状态与补丁节奏。
- 与 Kafka/Pulsar 类分布式日志型系统相比,Classic 面向传统队列语义,不擅长超大规模流式回放与分区并行消费。
七、同类选型对比
对比数据联网实查于 2026-10-18(GitHub API 与官方发行目录/官网):
| 维度 | Apache ActiveMQ Classic 6.3.2 | Apache Artemis 2.57.0 | RabbitMQ 4.3.6 | Apache Kafka 4.4.0 |
|---|---|---|---|---|
| 许可证 | Apache-2.0 | Apache-2.0 | MPL-2.0(GitHub license 字段为 NOASSERTION,官方声明 MPL 2.0) | Apache-2.0 |
| 社区活跃度(GitHub stars / 最近推送) | 2 467 ★ / 2026-10-17 | 1 068 ★ / 2026-10-15 | 13 929 ★ / 2026-10-17 | 34 036 ★ / 2026-10-17 |
| 最近发版 | 6.3.2(2026-08-29,GitHub Release) | 2.57.0(2026-09-09,官网下载页) | v4.3.6(2026-09-14,GitHub Release) | 4.4.0(官方发行目录在架版本,Kafka 不使用 GitHub Release) |
| 版本节奏 | 6.x 与 5.19.x 双线维护,年内多次补丁 | 月度级补丁节奏,迭代最快 | 季度级功能版本 + 月度补丁 | 年度大版本 + 频繁补丁 |
| 协议/模型 | OpenWire/AMQP/MQTT/STOMP;Queue/Topic | OpenWire/AMQP/MQTT/STOMP/CORE;Queue/Topic,多级地址模型 | AMQP 0-9-1/MQTT/STOMP/HTTP;Exchange/Queue 路由 | 私有协议;分区日志、消费组回放 |
| 兼容矩阵 | Java 17-22(6.x),Jakarta JMS 2/3.1(部分) | Java 17+,JMS 2/Jakarta | Erlang/OTP 26-27,多语言客户端 | Java 17+(broker/client),流式语义 |
选型建议:存量 JMS/OpenWire 应用、需要 Topic 持久订阅与 Camel 集成的企业集成场景选 ActiveMQ Classic 或 Artemis(新项目优先 Artemis);强调易用的路由拓扑与运维生态、中低吞吐业务消息选 RabbitMQ;日志流、大吞吐、可回放的事件流选 Kafka。
八、参考链接
- ActiveMQ Classic 主页与文档:https://activemq.apache.org/components/classic/
- 下载页(系列状态):https://activemq.apache.org/components/classic/download
- Getting Started:https://activemq.apache.org/components/classic/documentation/getting-started
- GitHub 仓库与 6.3.2 Release:https://github.com/apache/activemq
- ASF 发行目录:https://downloads.apache.org/activemq/
- Artemis 官网:https://artemis.apache.org/
- RabbitMQ 官网:https://www.rabbitmq.com/
- Kafka 官网:https://kafka.apache.org/