1. 首页 > 软件下载 > 正文

ActiveMQ下载-Apache ActiveMQ消息队列下载地址-ActiveMQ下载方法

1. ActiveMQ简介与版本说明

Apache ActiveMQ是Apache软件基金会开发的开源消息中间件,是Apache最受欢迎的开源消息代理之一。ActiveMQ实现了JMS(Java Message Service)规范,提供高性能、高可用、可扩展的消息传递能力,广泛应用于企业级应用集成、异步消息处理、系统解耦等场景。

ActiveMQ支持多种消息协议,包括OpenWire(原生协议)、STOMP、AMQP、MQTT、WSIF等,可以与各种编程语言和平台进行集成。更多学习教程www.fgedu.net.cn。ActiveMQ提供两种主要版本:ActiveMQ Classic(经典版)和ActiveMQ Artemis(下一代版本)。

ActiveMQ主要特性:

– 完全支持JMS 1.1和JMS 2.0规范
– 支持多种传输协议:TCP、SSL、UDP、NIO、HTTP等
– 支持多种消息持久化方式:KahaDB、LevelDB、JDBC、Memory
– 支持主从复制和集群部署
– 内置Web管理控制台
– 支持消息分组、延迟消息、消息优先级
– 支持XA事务和JTA集成
– 提供REST API和AJAX支持

2. ActiveMQ版本选择与下载地址

ActiveMQ提供多个版本供用户选择,生产环境建议使用稳定支持版本。学习交流加群风哥微信: itpux-com。

ActiveMQ Classic版本状态:

版本系列 状态 最新版本 发布日期 Java版本
6.2.x Stable-Supported 6.2.3 2026-03-30 Java 17+
6.1.x Deprecated 6.1.8 2025-10-22 Java 17+
6.0.x Deprecated 6.0.1 2023-12-03 Java 17+
5.19.x Stable-Supported 5.19.3 2026-03-24 Java 11+
5.18.x Deprecated 5.18.7 2025-03-19 Java 11+
5.17.x Deprecated 5.17.7 2025-03-20 Java 11+
5.16.x Deprecated 5.16.8 2025-03-22 Java 8

版本选择建议:

– 新项目推荐使用:ActiveMQ 6.2.3(最新稳定版,Jakarta JMS支持)
– 传统JMS项目:ActiveMQ 5.19.3(Javax JMS支持,Java 11+)
– Java 8环境:ActiveMQ 5.16.8(最后一个支持Java 8的版本)
– 生产环境:必须使用Stable-Supported版本

官方下载地址:

ActiveMQ官网:https://activemq.apache.org/
下载页面:https://activemq.apache.org/components/classic/download/
镜像下载:https://dlcdn.apache.org/activemq/

3. ActiveMQ下载方式详解

方式一:官网直接下载

访问ActiveMQ官网下载页面,选择合适的版本进行下载。

$ cd /fgeudb/software
$ wget https://dlcdn.apache.org/activemq/6.2.3/apache-activemq-6.2.3-bin.tar.gz

输出示例如下:
–2026-04-04 10:00:00– https://dlcdn.apache.org/activemq/6.2.3/apache-activemq-6.2.3-bin.tar.gz
Resolving dlcdn.apache.org (dlcdn.apache.org)… 151.101.2.132
Connecting to dlcdn.apache.org (dlcdn.apache.org)|151.101.2.132|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 78234567 (75M) [application/x-gzip]
Saving to: ‘apache-activemq-6.2.3-bin.tar.gz’

apache-activemq-6.2.3-bin.tar.gz 100%[======================================================================>] 74.62M 5.2MB/s in 14s

2026-04-04 10:00:14 (5.3 MB/s) – ‘apache-activemq-6.2.3-bin.tar.gz’ saved [78234567/78234567]

方式二:使用国内镜像加速下载

$ cd /fgeudb/software
$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/activemq/6.2.3/apache-activemq-6.2.3-bin.tar.gz

输出示例如下:
–2026-04-04 10:01:00– https://mirrors.tuna.tsinghua.edu.cn/apache/activemq/6.2.3/apache-activemq-6.2.3-bin.tar.gz
Resolving mirrors.tuna.tsinghua.edu.cn… 101.6.15.130
Connecting to mirrors.tuna.tsinghua.edu.cn|101.6.15.130|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 78234567 (75M) [application/x-gzip]
Saving to: ‘apache-activemq-6.2.3-bin.tar.gz’

apache-activemq-6.2.3-bin.tar.gz 100%[======================================================================>] 74.62M 25.3MB/s in 3.0s

2026-04-04 10:01:03 (25.3 MB/s) – ‘apache-activemq-6.2.3-bin.tar.gz’ saved [78234567/78234567]

方式三:下载并验证文件完整性

$ cd /fgeudb/software
$ wget https://dlcdn.apache.org/activemq/6.2.3/apache-activemq-6.2.3-bin.tar.gz
$ wget https://dlcdn.apache.org/activemq/6.2.3/apache-activemq-6.2.3-bin.tar.gz.sha512
$ wget https://dlcdn.apache.org/activemq/6.2.3/apache-activemq-6.2.3-bin.tar.gz.asc

验证SHA512校验和:
$ sha512sum -c apache-activemq-6.2.3-bin.tar.gz.sha512

输出示例如下:
apache-activemq-6.2.3-bin.tar.gz: OK

验证GPG签名:
$ gpg –import KEYS
$ gpg –verify apache-activemq-6.2.3-bin.tar.gz.asc apache-activemq-6.2.3-bin.tar.gz

输出示例如下:
gpg: Signature made Mon 30 Mar 2026 10:00:00 AM CST
gpg: using RSA key ABC123DEF456…
gpg: Good signature from “Apache ActiveMQ

方式四:下载ActiveMQ 5.19.x版本(Javax JMS兼容)

$ cd /fgeudb/software
$ wget https://dlcdn.apache.org/activemq/5.19.3/apache-activemq-5.19.3-bin.tar.gz

输出示例如下:
–2026-04-04 10:02:00– https://dlcdn.apache.org/activemq/5.19.3/apache-activemq-5.19.3-bin.tar.gz
Resolving dlcdn.apache.org (dlcdn.apache.org)… 151.101.2.132
Connecting to dlcdn.apache.org (dlcdn.apache.org)|151.101.2.132|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 67543210 (64M) [application/x-gzip]
Saving to: ‘apache-activemq-5.19.3-bin.tar.gz’

apache-activemq-5.19.3-bin.tar.gz 100%[======================================================================>] 64.42M 5.1MB/s in 13s

2026-04-04 10:02:13 (5.0 MB/s) – ‘apache-activemq-5.19.3-bin.tar.gz’ saved [67543210/67543210]

4. ActiveMQ安装部署实战

步骤1:环境准备

检查Java版本:
$ java -version

输出示例如下:
openjdk version “17.0.13” 2026-01-21
OpenJDK Runtime Environment (build 17.0.13+11-Ubunt-1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Ubunt-1, mixed mode, sharing, from:www.itpux.com)

设置JAVA_HOME环境变量:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
$ echo “export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64” >> ~/.bashrc
$ source ~/.bashrc

步骤2:解压安装

创建安装目录:
# mkdir -p /fgeudb/activemq

解压安装包:
$ cd /fgeudb/software
$ tar -zxvf apache-activemq-6.2.3-bin.tar.gz -C /fgeudb/activemq/

输出示例如下:
apache-activemq-6.2.3/
apache-activemq-6.2.3/activemq-all-6.2.3.jar
apache-activemq-6.2.3/LICENSE
apache-activemq-6.2.3/NOTICE
apache-activemq-6.2.3/README.txt
apache-activemq-6.2.3/bin/
apache-activemq-6.2.3/bin/activemq
apache-activemq-6.2.3/bin/activemq.bat
apache-activemq-6.2.3/bin/activemq.jar
apache-activemq-6.2.3/bin/env

apache-activemq-6.2.3/webapps/
apache-activemq-6.2.3/webapps/admin/
apache-activemq-6.2.3/webapps/api/
apache-activemq-6.2.3/webapps/console/

创建软链接便于管理:
# ln -s /fgeudb/activemq/apache-activemq-6.2.3 /fgeudb/activemq/current

查看安装目录结构:
$ ls -la /fgeudb/activemq/current/

输出示例如下:
total 64
drwxr-xr-x 8 root root 4096 Apr 4 10:03 .
drwxr-xr-x 3 root root 4096 Apr 4 10:03 ..
-rw-r–r– 1 root root 18320 Mar 30 10:00 LICENSE
-rw-r–r– 1 root root 3215 Mar 30 10:00 NOTICE
-rw-r–r– 1 root root 3545 Mar 30 10:00 README.txt
drwxr-xr-x 2 root root 4096 Apr 4 10:03 bin
drwxr-xr-x 2 root root 4096 Apr 4 10:3 conf
drwxr-xr-x 2 root root 4096 Apr 4 10:03 data
drwxr-xr-x 2 root root 4096 Apr 4 10:03 examples
drwxr-xr-x 2 root root 4096 Apr 4 10:03 lib
drwxr-xr-x 2 root root 4096 Apr 4 10:03 webapps

步骤3:配置环境变量

设置ActiveMQ环境变量:
# cat >> /etc/profile.d/activemq.sh << 'EOF' export ACTIVEMQ_HOME=/fgeudb/activemq/current export PATH=$ACTIVEMQ_HOME/bin:$PATH EOF 使环境变量生效: # source /etc/profile.d/activemq.sh 验证环境变量: $ echo $ACTIVEMQ_HOME 输出示例如下: /fgeudb/activemq/current

步骤4:启动ActiveMQ

前台启动(用于测试):
$ cd /fgeudb/activemq/current
$ ./bin/activemq console

输出示例如下:
INFO: Loading ‘/fgeudb/activemq/current/bin/env’
INFO: Using java ‘/usr/lib/jvm/java-17-openjdk-amd64/bin/java’
INFO: Starting in foreground, redirecting output to console
Java Runtime: OpenJDK Runtime Environment 17.0.13+11-Ubunt-1
Heap sizes: current=65536k free=64512k max=1048576k
JVM args: -Xms64M -Xmx1G …
ACTIVEMQ_HOME: /fgeudb/activemq/current
ACTIVEMQ_BASE: /fgeudb/activemq/current
ACTIVEMQ_CONF: /fgeudb/activemq/current/conf
ACTIVEMQ_DATA: /fgeudb/activemq/current/data

INFO | Apache ActiveMQ 6.2.3 (localhost, ID:fgedu.net.cn-49157-1712217600000-0:1) is starting
INFO | Listening for connections at: tcp://fgedu.net.cn:61616
INFO | Connector openwire started
INFO | Apache ActiveMQ 6.2.3 (localhost, ID:fgedu.net.cn-49157-1712217600000-0:1) started
INFO | For help or more information please see: http://activemq.apache.org
INFO | ActiveMQ WebConsole available at http://0.0.0.0:8161/
INFO | ActiveMQ Jolokia REST API available at http://0.0.0.0:8161/api/jolokia/

后台启动:
$ ./bin/activemq start

输出示例如下:
INFO: Loading ‘/fgeudb/activemq/current/bin/env’
INFO: Using java ‘/usr/lib/jvm/java-17-openjdk-amd64/bin/java’
INFO: Starting – inspect logfiles specified in logging.properties and log4j2.properties
INFO: pidfile created : ‘/fgeudb/activemq/current/data/activemq.pid’ (pid ‘12345’)

5. ActiveMQ生产环境配置优化

步骤1:配置JVM内存参数

编辑环境配置文件:
# vi /fgeudb/activemq/current/bin/env

修改JVM参数:
ACTIVEMQ_OPTS_MEMORY=”-Xms4G -Xmx8G”
ACTIVEMQ_OPTS=”-XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Djava.awt.headless=true -Djava.io.tmpdir=/fgeudb/activemq/current/tmp”

生产环境JVM参数说明:
-Xms4G 初始堆内存4GB
-Xmx8G 最大堆内存8GB,学习交流加群风哥QQ113257174
-XX:+UseG1GC 使用G1垃圾收集器
-XX:MaxGCPauseMillis=200 最大GC停顿时间200ms
-XX:InitiatingHeapOccupancyPercent=45 堆占用45%时启动GC

步骤2:配置消息持久化

编辑activemq.xml配置文件:
# vi /fgeudb/activemq/current/conf/activemq.xml

KahaDB持久化配置(默认,推荐):

JDBC持久化配置(适用于需要数据库存储的场景):

步骤3:配置传输连接器

编辑activemq.xml配置文件:
# vi /fgeudb/activemq/current/conf/activemq.xml

配置传输连接器:

生产环境参数说明:
maximumConnections=1000 最大连接数
wireFormat.maxFrameSize 最大帧大小100MB
soTimeout=30000 Socket超时30秒
trace=false 关闭追踪日志

步骤4:配置系统限制

设置文件描述符限制:
# vi /etc/security/limits.conf

添加以下内容:
activemq soft nofile 65536
activemq hard nofile 65536
activemq soft nproc 65536
activemq hard nproc 65536

查看当前限制:
$ ulimit -n

输出示例如下:
65536

设置内核参数:
# vi /etc/sysctl.conf

添加以下内容:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200

使配置生效:
# sysctl -p

6. ActiveMQ集群配置方案

方案一:主从复制(Network of Brokers)

主节点配置(192.168.1.51):
# vi /fgeudb/activemq/current/conf/activemq.xml



从节点配置(192.168.1.52):
# vi /fgeudb/activemq/current/conf/activemq.xml



方案二:共享存储主从(Shared Storage)

主节点配置:
# vi /fgeudb/activemq/current/conf/activemq.xml

从节点配置(相同配置,自动竞争成为主节点):
# vi /fgeudb/activemq/current/conf/activemq.xml

方案三:LevelDB复制(已弃用,不推荐生产使用)

7. ActiveMQ安全配置

步骤1:配置用户认证

编辑credentials.properties文件:
# vi /fgeudb/activemq/current/conf/credentials.properties

添加用户:
activemq.username=admin
activemq.password=admin123
guest.password=guest123

编辑users.properties文件:
# vi /fgeudb/activemq/current/conf/users.properties

添加用户和角色:
admin=admin123,admin
producer=prod123,producer
consumer=cons123,consumer
guest=guest123,guest

步骤2:配置访问控制

编辑activemq.xml配置文件:
# vi /fgeudb/activemq/current/conf/activemq.xml









” read=”admins,consumers” write=”admins,producers” admin=”admins”/>
编辑jetty.xml配置文件:
# vi /fgeudb/activemq/current/conf/jetty.xml

编辑jetty-realm.properties文件:
# vi /fgeudb/activemq/current/conf/jetty-realm.properties

admin: admin123, admin

步骤4:配置SSL/TLS加密

生成密钥库:
$ keytool -genkeypair -alias activemq -keyalg RSA -keysize 2048 -validity 365 -keystore /fgeudb/activemq/conf/broker.ks -storepass changeit -keypass changeit -dname “CN=fgedu.net.cn, OU=IT, O=, L=Beijing, ST=Beijing, C=CN”

输出示例如下:
Warning: The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12…
What is your first and last name?
[Unknown]: fgedu.net.cn
What is the name of your organizational unit?
[Unknown]: IT
What is the name of your organization?
[Unknown]:
What is the name of your City or Locality?
[Unknown]: Beijing
What is the name of your State or Province?
[Unknown]: Beijing
What is the two-letter country code for this unit?
[Unknown]: CN
Is CN=fgedu.net.cn, OU=IT, O=, L=Beijing, ST=Beijing, C=CN correct?
[no]: yes

配置SSL连接器:
# vi /fgeudb/activemq/current/conf/activemq.xml



8. 安装验证与测试

查看ActiveMQ状态

查看进程状态:
$ ps -ef | grep activemq

输出示例如下:
activemq 12345 1 5 10:03 ? 00:00:15 /usr/lib/jvm/java-17-openjdk-amd64/bin/java -Xms4G -Xmx8G -XX:+UseG1GC -Dactivemq.home=/fgeudb/activemq/current -Dactivemq.base=/fgeudb/activemq/current -jar /fgeudb/activemq/current/bin/activemq.jar start

查看端口监听:
$ netstat -tlnp | grep java

输出示例如下:
tcp6 0 0 :::8161 :::* LISTEN 12345/java
tcp6 0 0 :::61613 :::* LISTEN 12345/java
tcp6 0 0 :::61614 :::* LISTEN 12345/java
tcp6 0 0 :::61616 :::* LISTEN 12345/java
tcp6 0 0 :::5672 :::* LISTEN 12345/java
tcp6 0 0 :::1883 :::* LISTEN 12345/java

访问Web管理控制台

打开浏览器访问:
http://192.168.1.51:8161/admin/

默认用户名:admin
默认密码:admin

控制台首页显示:
– Broker信息:名称、版本、运行时间
– 队列信息:队列数量、消息数量
– 主题信息:主题数量、订阅者数量
– 连接信息:当前连接数、最大连接数

使用命令行测试

查看Broker状态:
$ cd /fgeudb/activemq/current
$ ./bin/activemq query –objname type=Broker,brokerName=localhost

输出示例如下:
BrokerName = localhost
BrokerId = ID:fgedu.net.cn-49157-1712217600000-0:1
TotalMessageCount = 0
TotalConsumerCount = 0
TotalEnqueueCount = 0
TotalDequeueCount = 0
AverageMessageSize = 0
MemoryLimit = 1073741824
MemoryPercentUsage = 0
StoreLimit = 107374182400
StorePercentUsage = 0
TempLimit = 107374182400
TempPercentUsage = 0

创建测试队列:
$ ./bin/activemq bstat –queue test.queue

输出示例如下:
Queue test.queue does not exist, creating…

发送测试消息:
$ ./bin/activemq producer –destination queue://test.queue –messageCount 10 –message “Hello ActiveMQ”

输出示例如下:
Produced 10 messages to queue://test.queue

9. 客户端连接与使用

Java客户端连接示例

Maven依赖:

org.apache.activemq
activemq-client
6.2.3

连接工厂配置:
import org.apache.activemq.ActiveMQConnectionFactory;

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
connectionFactory.setBrokerURL(“tcp://192.168.1.51:61616”);
connectionFactory.setUserName(“admin”);
connectionFactory.setPassword(“admin123”);
connectionFactory.setTrustAllPackages(true);

生产者示例:
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(“test.queue”);
MessageProducer producer = session.createProducer(queue);
TextMessage message = session.createTextMessage(“Hello ActiveMQ!”);
producer.send(message);
System.out.println(“Message sent: ” + message.getText());

消费者示例:
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(“test.queue”);
MessageConsumer consumer = session.createConsumer(queue);
consumer.setMessageListener(message -> {
try {
System.out.println(“Received: ” + ((TextMessage) message).getText());
} catch (JMSException e) {
e.printStackTrace();
}
});

Spring Boot集成配置

application.yml配置:
spring:
activemq:
broker-url: tcp://192.168.1.51:61616
user: admin
password: admin123
pool:
enabled: true
max-connections: 50
packages:
trust-all: true

生产者服务:
@Service
public class MessageService {
@Autowired
private JmsTemplate jmsTemplate;

public void sendMessage(String destination, String message) {
jmsTemplate.convertAndSend(destination, message);
System.out.println(“Sent message: ” + message);
}
}

消费者服务:
@Component
public class MessageListener {
@JmsListener(destination = “test.queue”)
public void receiveMessage(String message) {
System.out.println(“Received message: ” + message);
}
}

连接池配置

PooledConnectionFactory配置:
import org.apache.activemq.pool.PooledConnectionFactory;

PooledConnectionFactory pooledFactory = new PooledConnectionFactory();
pooledFactory.setConnectionFactory(connectionFactory);
pooledFactory.setMaxConnections(10);
pooledFactory.setMaximumActiveSessionPerConnection(50);
pooledFactory.setIdleTimeout(30000);
pooledFactory.setExpiryTimeout(0);
pooledFactory.setCreateConnectionOnStartup(true);

10. 常见问题与解决方案

问题1:内存不足导致Broker崩溃

错误日志:
java.lang.OutOfMemoryError: Java heap space

解决方案:
1. 增加JVM堆内存:
ACTIVEMQ_OPTS_MEMORY=”-Xms8G -Xmx16G”

2. 配置消息限制策略:
” memoryLimit=”512mb”/>

3. 启用消息过期和清理: 症状:消息积压时写入性能下降

解决方案:
1. 优化KahaDB配置:

2. 使用SSD存储KahaDB数据目录

3. 定期清理过期消息:
$ ./bin/activemq purge ActiveMQ.DLQ

问题3:连接数过多导致拒绝连接

错误日志:
java.io.IOException: Transport connection CLOSED

解决方案:
1. 增加最大连接数:

2. 配置连接池:

3. 调整系统限制:
# ulimit -n 65536

问题4:Web控制台无法访问

检查步骤:
1. 检查端口是否监听:
$ netstat -tlnp | grep 8161

2. 检查防火墙:
# firewall-cmd –add-port=8161/tcp –permanent
# firewall-cmd –reload

3. 检查jetty.xml配置:

ActiveMQ服务管理命令

启动服务:
$ ./bin/activemq start

停止服务:
$ ./bin/activemq stop

重启服务:
$ ./bin/activemq restart

查看状态:
$ ./bin/activemq status

输出示例如下:
ActiveMQ is running (pid ‘12345’)

查看日志:
$ tail -f /fgeudb/activemq/current/data/activemq.log

配置系统服务:
# vi /etc/systemd/system/activemq.service

[Unit]
Description=Apache ActiveMQ
After=network.target

[Service]
Type=forking
User=activemq
Group=activemq
ExecStart=/fgeudb/activemq/current/bin/activemq start
ExecStop=/fgeudb/activemq/current/bin/activemq stop
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

启用服务:
# systemctl daemon-reload
# systemctl enable activemq
# systemctl start activemq

生产环境建议
1. 使用ActiveMQ 6.2.x或5.19.x稳定版本;2. 配置足够的JVM内存(建议8GB以上);3. 使用KahaDB持久化并配置异步写入;4. 配置消息限制策略防止内存溢出;5. 启用用户认证和访问控制;6. 配置SSL/TLS加密传输;7. 部署主从集群实现高可用;8. 监控队列深度和消费者状态;9. 定期清理过期消息和死信队列;10. 配置系统服务实现自动重启。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息