ActiveMQ介绍及Compose搭建

Apache ActiveMQ 是 Apache 软件基金会旗下最流行的开源、多协议、基于Java的消息中间件(Message Broker)。它实现了 JMS(Java Message Service) 规范,同时支持多种跨语言协议,广泛应用于微服务解耦、异步通信、系统集成等场景。


核心特点

特性 说明
多协议支持 OpenWire(默认)、AMQP、MQTT、STOMP、WebSocket 等
多语言客户端 Java、C/C++、Python、.NET、JavaScript、Go 等
消息模型 点对点(Queue)、发布/订阅(Topic)
持久化 KahaDB(默认)、JDBC、LevelDB 等
高可用 Master-Slave、Network of Brokers、共享存储
管理界面 自带 Web Console(默认端口 8161)
企业集成 可与 Apache Camel 深度集成,支持 EIP 模式

ActiveMQ 目前有两个主要分支:

  • ActiveMQ Classic(传统版本,更成熟稳定,社区使用最广泛)
  • ActiveMQ Artemis(下一代高性能版本,已独立为 Apache Artemis 项目)

日常使用和大多数教程中提到的 ActiveMQ 通常指 Classic 版本。


Docker Compose快速搭建

官方镜像:apache/activemq-classic

1. 创建目录结构

1
2
mkdir -p activemq/{data,conf,logs}
cd activemq

2. 编写docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
services:
activemq:
image: apache/activemq-classic:5.19.2 # 可换成最新稳定版
container_name: activemq
restart: unless-stopped
ports:
- "8161:8161" # Web Console
- "61616:61616" # OpenWire (JMS 默认)
- "5672:5672" # AMQP
- "61613:61613" # STOMP
- "1883:1883" # MQTT
- "61614:61614" # WebSocket
environment:
# Web Console 登录账号(推荐修改默认值)
ACTIVEMQ_WEB_USER: admin
ACTIVEMQ_WEB_PASSWORD: admin123
# 连接认证(可选,不设置则无需账号密码)
# ACTIVEMQ_CONNECTION_USER: user
# ACTIVEMQ_CONNECTION_PASSWORD: password
volumes:
- ./data:/opt/apache-activemq/data
- ./logs:/opt/apache-activemq/logs
# 如需自定义配置可挂载 conf 目录
# - ./conf:/opt/apache-activemq/conf
# 资源限制(可选)
# deploy:
# resources:
# limits:
# memory: 1G

3. 启动服务

1
docker compose up -d

4. 验证

  • Web Console:浏览器访问 http://localhost:8161/admin
    默认账号密码(如果未通过环境变量修改):admin / admin
    (使用上面 compose 则为 admin / admin123)

  • 查看日志:

    1
    docker logs -f activemq
  • 检查端口:

    1
    docker ps

常用端口说明

端口 协议 用途
8161 HTTP Web Console 管理界面
61616 OpenWire Java/JMS 客户端默认连接
5672 AMQP 跨语言通用协议
61613 STOMP 文本协议,适合脚本语言
1883 MQTT IoT 设备常用
61614 WebSocket 浏览器端 STOMP over WS
1099 JMX 监控与管理