# Linux下如何安装ActiveMQ消息中间件 ## 一、ActiveMQ简介 Apache ActiveMQ是一个开源的多协议消息中间件,支持JMS 1.1和J2EE 1.4规范。它具有以下核心特性: - 支持多种协议(OpenWire, STOMP, AMQP, MQTT等) - 提供持久化和非持久化消息传递 - 与Spring框架无缝集成 - 支持集群部署和高可用方案 - 提供消息分组、虚拟主题等高级特性 ## 二、安装前准备 ### 1. 系统要求 - Linux操作系统(本文以Ubuntu 20.04为例) - Java环境(JDK 8或11) - 至少1GB可用内存 - 2GB以上磁盘空间 ### 2. 安装JDK ```bash # Ubuntu/Debian sudo apt update sudo apt install openjdk-11-jdk # 验证安装 java -version
访问Apache ActiveMQ官网获取最新稳定版:
wget https://downloads.apache.org/activemq/5.16.3/apache-activemq-5.16.3-bin.tar.gz
tar -xzvf apache-activemq-5.16.3-bin.tar.gz sudo mv apache-activemq-5.16.3 /opt/activemq
编辑/etc/profile
文件:
sudo nano /etc/profile
添加以下内容:
export ACTIVEMQ_HOME=/opt/activemq export PATH=$PATH:$ACTIVEMQ_HOME/bin
使配置生效:
source /etc/profile
主要配置文件位于$ACTIVEMQ_HOME/conf
目录:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}"> <!-- 修改传输协议配置 --> <transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/> </transportConnectors> </broker>
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start"> <property name="host" value="0.0.0.0"/> <property name="port" value="8161"/> </bean>
创建服务文件/etc/systemd/system/activemq.service
:
[Unit] Description=Apache ActiveMQ After=network.target [Service] Type=forking User=activemq Group=activemq ExecStart=/opt/activemq/bin/activemq start ExecStop=/opt/activemq/bin/activemq stop Restart=on-abort [Install] WantedBy=multi-user.target
创建专用用户并设置权限:
sudo useradd -r activemq sudo chown -R activemq:activemq /opt/activemq
启动服务:
sudo systemctl daemon-reload sudo systemctl start activemq sudo systemctl enable activemq
systemctl status activemq
浏览器访问:http://服务器IP:8161/admin
默认凭证:admin/admin
netstat -tulnp | grep java # 应看到61616(OpenWire)和8161(Web)端口
# 手动启动 /opt/activemq/bin/activemq start # 停止服务 /opt/activemq/bin/activemq stop
使用Web控制台: 1. 登录后进入”Queues”选项卡 2. 输入队列名称(如test.queue) 3. 点击”Create”按钮
// 使用JMS示例代码 ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = factory.createConnection(); 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);
编辑$ACTIVEMQ_HOME/conf/jetty-realm.properties
:
admin: NEW_PASSWORD, admin
keytool -genkey -alias activemq -keyalg RSA \ -keystore /opt/activemq/conf/broker.ks \ -storepass password -keypass password
修改activemq.xml:
<sslContext> <sslContext keyStore="/opt/activemq/conf/broker.ks" keyStorePassword="password"/> </sslContext>
修改$ACTIVEMQ_HOME/bin/env
:
ACTIVEMQ_OPTS="-Xms512M -Xmx1024M"
检查防火墙设置:
sudo ufw allow 8161/tcp
调整策略配置:
<policyEntry queue=">" memoryLimit="32mb"/>
本文详细介绍了在Linux系统上安装配置ActiveMQ的完整流程。通过合理的配置优化和安全加固,可以构建出稳定可靠的企业级消息中间件环境。建议生产环境中: - 使用JDK 11 LTS版本 - 配置主从集群实现高可用 - 定期监控消息堆积情况 - 做好数据备份策略
如需更高级功能,可参考官方文档进行深度配置。 “`
注:实际使用时请根据具体ActiveMQ版本调整路径和配置参数。生产环境建议使用最新稳定版本并做好安全加固。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。