ActiveMQ 在 Linux 系统上的安装与配置
ActiveMQ 是一个开源的消息代理(Message Broker),用于在分布式系统中进行消息传递,它支持多种语言和协议,如 AMQP、MQTT、STOMP、JMS 等,在 Linux 系统上安装 ActiveMQ 可以帮助我们构建一个稳定、高效的消息队列服务,本文将详细介绍如何在 Linux 系统上安装 ActiveMQ。

安装前的准备
在开始安装 ActiveMQ 之前,请确保您的 Linux 系统满足以下要求:
- 操作系统:Linux(如 Ubuntu、CentOS 等)
- Java 运行环境:Java 8 或更高版本
- 网络连接:确保您的系统可以访问互联网,以便下载 ActiveMQ 安装包
安装 Java
ActiveMQ 需要 Java 运行环境,因此首先需要确保您的系统中已安装 Java,以下是在 Ubuntu 系统上安装 Java 的示例:
sudo apt-get update sudo apt-get install openjdk-8-jdk
在 CentOS 系统上,可以使用以下命令安装 Java:
sudo yum install java-1.8.0-openjdk
安装完成后,可以通过以下命令检查 Java 版本:
java -version
下载 ActiveMQ 安装包
从 ActiveMQ 官方网站(https://activemq.apache.org/download.html)下载适合您系统的 ActiveMQ 安装包,下载完成后,将其解压到您选择的目录中。
tar -zxvf activemq-5.15.10-bin.tar.gz
解压后,您将得到一个名为 activemq-5.15.10 的目录。

配置 ActiveMQ
进入 ActiveMQ 解压后的目录,找到 bin 子目录,并执行以下命令启动 ActiveMQ:
./activemq start
启动成功后,ActiveMQ 将在后台运行,您可以通过访问 http://localhost:8161/ 来查看 ActiveMQ 的 Web 管理界面。
配置网络端口
默认情况下,ActiveMQ 使用端口 61616 进行客户端通信,端口 8161 用于 Web 管理界面,如果您需要更改这些端口,可以在 conf/activemq.xml 文件中进行修改。
要将客户端通信端口更改为 5672,可以在 conf/activemq.xml 文件中找到以下行:
<broker brokerName="default-broker" ...>
<transportConnectors>
<transport name="openwire" uri="tcp://0.0.0.0:61616"/>
...
</transportConnectors>
...
</broker>
将端口 61616 替换为 5672,然后保存文件。
配置消息队列
ActiveMQ 支持多种消息队列配置,您可以在 conf/activemq.xml 文件中添加或修改队列配置。

以下是一个简单的队列配置示例:
<broker brokerName="default-broker" ...>
...
<queue physicalName="testQueue" ...>
...
</queue>
...
</broker>
保存文件后,重启 ActiveMQ 以使配置生效。
使用 ActiveMQ
在您的应用程序中,您可以使用 Java Message Service (JMS) API 来使用 ActiveMQ,以下是一个简单的示例,演示如何使用 ActiveMQ 发送和接收消息:
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;
public class ActiveMQExample {
public static void main(String[] args) {
try {
// 创建连接工厂
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:5672");
// 创建连接
Connection connection = connectionFactory.createConnection();
// 启动连接
connection.start();
// 创建会话(接收消息)
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 创建队列
Destination destination = session.createQueue("testQueue");
// 创建生产者
MessageProducer producer = session.createProducer(destination);
// 创建消费者
MessageConsumer consumer = session.createConsumer(destination);
// 发送消息
Message message = session.createTextMessage("Hello, ActiveMQ!");
producer.send(message);
// 接收消息
Message receivedMessage = consumer.receive();
System.out.println("Received message: " + receivedMessage.getText());
// 关闭连接
consumer.close();
producer.close();
session.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
编译并运行上述 Java 程序,您将看到控制台输出接收到的消息。
本文详细介绍了如何在 Linux 系统上安装和配置 ActiveMQ,通过学习本文,您应该能够成功安装 ActiveMQ 并在您的应用程序中使用它,ActiveMQ 是一个功能强大的消息队列服务,可以帮助您构建高效、可扩展的分布式系统。


















