自动构建

Apache ActiveMQ Artemis是高性能企业级消息代理,支持JMS 2.0等标准协议,适用于异步通信、系统集成及分布式应用间的可靠消息传递。

57 次收藏下载次数: 0状态:自动构建维护者:Apache 软件基金会镜像仓库类型:镜像最近更新:
下载命令
点击查看

Apache ActiveMQ Artemis Docker镜像文档

1. 镜像概述与主要用途

Apache ActiveMQ Artemis 是一款开源、多协议、基于 Java 的高性能消息代理(Message Broker),属于 Apache ActiveMQ 项目的下一代实现。它提供可靠的异步消息传递能力,支持多种工业标准协议,旨在连接跨语言、跨平台的应用系统,实现松耦合的系统集成与通信。

主要用途:

  • 作为分布式系统的消息中枢,实现应用间异步通信
  • 解耦系统组件,提高架构弹性与可扩展性
  • 支持高并发场景下的消息缓冲与流量控制
  • 提供消息持久化与事务支持,确保数据可靠性

2. 核心功能与特性

2.1 多协议支持

  • JMS:兼容 Java 消息服务规范,支持队列(Queue)、主题(Topic)等消息模型
  • AMQP:支持高级消息队列协议,适配跨平台集成需求
  • STOMP:支持简单文本定向消息协议,适用于 Web 应用通过 WebSocket 通信
  • MQTT:支持消息队列遥测传输协议,适用于物联网(IoT)设备通信

2.2 多语言客户端兼容

支持 JavaScript、C、C++、Python、.NET 等多种语言编写的客户端接入,降低跨技术栈集成门槛。

2.3 高可靠性与性能

  • 支持消息持久化(基于文件或数据库),防止数据丢失
  • 提供集群部署能力,支持主从复制、负载均衡与故障转移
  • 低延迟消息处理,适配高吞吐量场景

2.4 灵活的部署与管理

  • 轻量级设计,支持嵌入式与独立部署
  • 提供 Web 管理控制台与命令行工具,简化配置与监控

3. 使用场景与适用范围

3.1 企业级系统集成

  • 连接 ERP、CRM 等核心业务系统,实现数据异步同步
  • 支持事务消息,确保跨系统操作的一致性

3.2 微服务架构通信

  • 作为微服务间的通信枢纽,通过消息解耦服务依赖
  • 支持发布/订阅(Pub/Sub)与点对点(Point-to-Point)通信模式

3.3 物联网(IoT)设备管理

  • 通过 MQTT 协议连接海量 IoT 设备,高效处理传感器数据上报与指令下发

3.4 Web 应用实时通信

  • 通过 STOMP+WebSocket 实现 Web 前端与后端的实时消息推送(如聊天、通知)

3.5 遗留系统现代化

  • 基于 JMS 协议兼容传统 Java 应用,支持平滑迁移至云原生架构

4. 使用方法与配置说明

4.1 基本 Docker 部署(docker run)

通过以下命令快速启动单节点实例,包含默认配置与管理账户:

bash
docker run -d \
  --name activemq-artemis \
  -p 8161:8161  \  # Web管理控制台端口
  -p 61616:61616 \  # JMS协议端口
  -p 5672:5672   \  # AMQP协议端口
  -p 61613:61613 \  # STOMP协议端口
  -p 1883:1883   \  # MQTT协议端口
  -e ARTEMIS_USER=admin \  # 管理账户用户名
  -e ARTEMIS_PASSWORD=admin \  # 管理账户密码
  -v artemis-data:/var/lib/artemis-instance/data \  # 持久化数据卷
  apache/activemq-artemis

参数说明:

  • -p:端口映射,暴露管理控制台与各协议端口
  • -e:环境变量,配置管理员账户(默认账户需显式设置,避免安全风险)
  • -v:挂载数据卷,持久化消息数据(避免容器重启后数据丢失)

4.2 Docker Compose 部署

创建 docker-compose.yml 文件,配置多实例或集成其他服务:

yaml
version: '3.8'
services:
  activemq-artemis:
    image: docker.xuanyuan.run/apache/activemq-artemis
    container_name: activemq-artemis
    ports:
      - "8161:8161"   # Web管理控制台
      - "61616:61616" # JMS
      - "5672:5672"   # AMQP
      - "61613:61613" # STOMP
      - "1883:1883"   # MQTT
    environment:
      - ARTEMIS_USER=admin
      - ARTEMIS_PASSWORD=SecurePass123!  # 建议使用强密码
      - ARTEMIS_MIN_MEM=512M  # JVM最小内存
      - ARTEMIS_MAX_MEM=1G    # JVM最大内存
    volumes:
      - artemis-data:/var/lib/artemis-instance/data
      - ./config:/var/lib/artemis-instance/etc  # 挂载自定义配置文件(可选)
    restart: unless-stopped

volumes:
  artemis-data:  # 持久化卷定义

启动命令:

bash
docker-compose up -d

4.3 核心配置参数

4.3.1 环境变量

环境变量说明默认值
ARTEMIS_USER管理控制台登录用户名无(需显式设置)
ARTEMIS_PASSWORD管理控制台登录密码无(需显式设置)
ARTEMIS_MIN_MEMJVM 初始内存(如 512M)512M
ARTEMIS_MAX_MEMJVM 最大内存(如 1G)1G
ARTEMIS_INSTANCE实例名称broker

4.3.2 常用端口

端口用途协议类型
8161Web 管理控制台HTTP
61616JMS 客户端连接TCP(JMS)
5672AMQP 客户端连接AMQP
61613STOMP 客户端连接STOMP
1883MQTT 客户端连接MQTT

4.4 管理控制台访问

启动后,通过 http://<主机IP>:8161 访问管理控制台,使用 ARTEMIS_USER 和 ARTEMIS_PASSWORD 登录,可查看队列/主题状态、消息统计、客户端连接等信息。

5. 构建与扩展信息

5.1 镜像构建脚本

Docker 镜像构建脚本开源托管于 GitHub:
https://github.com/apache/activemq-artemis/tree/main/artemis-docker

5.2 自定义配置

如需修改 broker 配置(如消息策略、网络连接、安全设置),可通过以下方式:

  1. 挂载本地配置目录至容器内 /var/lib/artemis-instance/etc(覆盖默认配置文件)
  2. 基于官方镜像构建自定义镜像,嵌入修改后的配置

6. 注意事项

  • 安全建议:生产环境中需使用强密码(ARTEMIS_PASSWORD),并限制管理控制台访问来源(如通过防火墙或反向代理配置访问控制)。
  • 持久化:务必挂载数据卷(/var/lib/artemis-instance/data),避免容器删除导致消息丢失。
  • 集群部署:多节点集群需配置网络连接与发现机制(如基于 DNS 或 JDBC 的集群发现),详情参考官方文档。
  • 版本选择:建议使用官方镜像的稳定版本标签(如 apache/activemq-artemis:2.31.2),避免使用 latest 标签导致版本不可控。

更多详细说明:请参考官方 Docker 文档
https://activemq.apache.org/components/artemis/documentation/latest/docker.html

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 activemq-artemis 镜像标签

docker pull docker.xuanyuan.run/apache/activemq-artemis:<标签>

DockerHub 原生拉取命令

docker pull apache/activemq-artemis:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告