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 | mkdir -p activemq/{data,conf,logs} |
2. 编写docker-compose.yml
1 | services: |
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 | 监控与管理 |