Artemis 消息中间件
系统要求
- 操作系统:Ubuntu 22.04 LTS
- 服务器推荐配置:2核4G内存
第三方组件说明
以下说明仅供参考,具体配置和使用方法请参考 Apache ActiveMQ Artemis 官方文档。
简介
Apache ActiveMQ Artemis 是 Apache 软件基金会开源的一个高性能、异步的消息传递系统。作为微语系统(基于Spring Boot 3.x开发)的核心组件之一,Artemis 消息队列在系统中扮演着至关重要的角色,主要用于处理实时聊天消息收发以及大规模FAQ文件批量导入等场景。
Artemis 在微语系统中的应用场景
实时聊天消息处理
- 消息即时收发:支持客服与访客之间的实时消息传递
- 消息可靠投递:确保消息不丢失、不重复
- 高并发处理:能够应对大量用户同时在线的场景
- 多设备同步:实现消息在多端同步展示
批量数据处理
- FAQ文件批量导入:支持知识库文章、FAQ问答等大量数据的批量导入
- 数据异步处理:将耗时操作异步化,提高系统响应速度
- 任务队列管理:对大型批处理任务进行排队 和调度
为什么选择 Artemis
Artemis 相比其他消息队列系统具有以下优势:
- 高性能:更高的消息吞吐量和更低的延迟
- 可靠性:支持完整的JMS和AMQP协议,确保消息可靠投递
- Spring Boot整合:与Spring Boot 3.x完美集成,配置简单
- 多协议支持:同时支持JMS、AMQP、STOMP、MQTT等多种协议
- 灵活消息模式:支持点对点队列和发布订阅主题两种模式
方法一:使用Docker安装Artemis
推荐使用Docker方式部署Artemis,简单高效且易于管理。下面是完整的docker-compose配置示例:
services:
# Artemis消息中间件服务配置
bytedesk-artemis:
image: apache/activemq-artemis:latest
container_name: artemis-bytedesk
environment:
# 基本认证设置
- ARTEMIS_USER=admin # 管理员账号
- ARTEMIS_PASSWORD=admin # 管理员密码
- ANONYMOUS_LOGIN=false # 禁用匿名登录
# 额外参数
- EXTRA_ARGS=--http-host 0.0.0.0 --relax-jolokia # 允许远程访问
ports:
- "16161:61616" # JMS端口
- "18161:8161" # Web控制台端口
- "16162:61617" # AMQP端口
- "15672:5672" # AMQP端口(备用)
- "16163:61613" # STOMP端口
- "11883:1883" # MQTT端口
volumes:
- artemis_data:/var/lib/artemis/data # 数据持久化
networks:
- bytedesk-network
restart: always # 自动重启
healthcheck: # 健康检查
test: ["CMD", "curl", "--fail", "http://localhost:8161/console/jolokia/read/org.apache.activemq.artemis:broker=\"0.0.0.0\""]
interval: 30s
timeout: 10s
retries: 5
# 存储卷与网络定义
volumes:
artemis_data: # Artemis数据持久化卷
networks:
bytedesk-network:
driver: bridge
方法二:直接下载安装包解压部署
安装
# 解压到apache-artemis-2.37.0
# tar -zxvf apache-artemis-2.37.0-bin.tar.gz
# artemis需要创建一个文件夹,cd到目标文件夹,执行以下命令,创建mybroker文件夹
./apache-artemis-2.37.0/bin/artemis create mybroker
# 输入用户名和密码: admin/admin
# 前台启动
./mybroker/bin/artemis run
# 后台启动
./mybroker/bin/artemis-service start
# 停止
./mybroker/bin/artemis stop
# 查看状态
./mybroker/bin/artemis-service status
# 查看日志
./mybroker/bin/artemis-service log
# 查看帮助
# 配置
./apache-artemis-2.37.0/bin/artemis help create
# 修改端口号,本地冲突,将默认端口号+1
vim mybroker/etc/broker.xml
# web管理界面
http://localhost:8161
Artemis 部署模式选择
微语系统支持两种 Artemis 部署模式,您可以根据实际需求选择最适合的方式: