【详解】JMSActiveMQ的安装和启动

举报
皮牙子抓饭 发表于 2025/11/18 21:18:38 2025/11/18
【摘要】 JMS ActiveMQ 的安装和启动Apache ActiveMQ 是一个开源的消息中间件,实现了 Java 消息服务 (Java Message Service, JMS) 规范。它提供了消息队列和发布/订阅模型,支持多种协议(如 AMQP、MQTT 等),并且可以跨多个平台运行。本文将详细介绍如何在 Linux 系统上安装和启动 Apache ActiveMQ。1. 环境准备在开始安装...

JMS ActiveMQ 的安装和启动

Apache ActiveMQ 是一个开源的消息中间件,实现了 Java 消息服务 (Java Message Service, JMS) 规范。它提供了消息队列和发布/订阅模型,支持多种协议(如 AMQP、MQTT 等),并且可以跨多个平台运行。本文将详细介绍如何在 Linux 系统上安装和启动 Apache ActiveMQ。

1. 环境准备

在开始安装之前,请确保您的系统已经安装了以下软件:

  • Java Development Kit (JDK): ActiveMQ 需要 JDK 来运行。推荐使用 JDK 8 或更高版本。
  • Apache Maven (可选): 如果您需要从源代码编译 ActiveMQ,Maven 是必需的。

安装 JDK

如果您还没有安装 JDK,可以通过以下命令在 Ubuntu 上安装 OpenJDK 11:

sudo apt update
sudo apt install openjdk-11-jdk

验证安装是否成功:

java -version

2. 下载 ActiveMQ

访问 ​​Apache ActiveMQ 官方网站​​,下载最新版本的 ActiveMQ。例如,下载 5.16.3 版本:

wget https://downloads.apache.org/activemq/5.16.3/apache-activemq-5.16.3-bin.tar.gz

3. 解压安装包

下载完成后,解压安装包到指定目录,例如 ​​/opt​​:

sudo tar -xzf apache-activemq-5.16.3-bin.tar.gz -C /opt

进入解压后的目录:

cd /opt/apache-activemq-5.16.3

4. 启动 ActiveMQ

ActiveMQ 提供了一个简单的脚本来启动服务。在安装目录下执行以下命令:

bin/activemq start

这将启动 ActiveMQ 服务,并将其作为后台进程运行。您可以使用以下命令查看 ActiveMQ 的日志输出:

tail -f data/activemq.log

5. 验证安装

ActiveMQ 默认监听 61616 端口用于 JMS 连接,8161 端口用于 Web 控制台。打开浏览器并访问以下 URL 来验证安装是否成功:

http://localhost:8161/admin/

默认的用户名和密码都是 ​​admin​​。登录后,您将看到 ActiveMQ 的管理界面,可以在这里监控和管理队列、主题等。

6. 停止 ActiveMQ

如果您需要停止 ActiveMQ 服务,可以使用以下命令:

bin/activemq stop

7. 配置 ActiveMQ

ActiveMQ 的配置文件位于 ​​conf​​ 目录下,主要的配置文件是 ​​activemq.xml​​。您可以根据需要修改这些配置文件来调整 ActiveMQ 的行为,例如更改端口号、设置持久化策略等。

修改端口号

如果您需要更改 ActiveMQ 的端口号,可以在 ​​conf/activemq.xml​​ 文件中找到以下部分并进行修改:

<transportConnectors>
    <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>

设置持久化策略

ActiveMQ 支持多种持久化策略,包括 KahaDB 和 JDBC。默认情况下,ActiveMQ 使用 KahaDB 作为持久化存储。如果您需要使用 JDBC,可以在 ​​conf/activemq.xml​​ 文件中进行配置。

8. 常见问题

无法连接到 Web 控制台

如果无法通过浏览器访问 Web 控制台,请检查以下几点:

  • 确保 ActiveMQ 服务已启动。
  • 确认防火墙规则允许 8161 端口的流量。
  • 检查 ​​conf/jetty.xml​​ 文件中的端口号配置是否正确。

日志文件没有更新

如果日志文件没有更新,可能是日志路径或权限问题。请检查 ​​conf/log4j.properties​​ 文件中的日志路径配置,并确保 ActiveMQ 有写入日志文件的权限。



Apache ActiveMQ 是一个非常流行的开源消息中间件,支持多种消息协议,包括 JMS(Java Message Service)。下面我将详细介绍如何在 Linux 系统上安装和启动 Apache ActiveMQ,并提供一些示例代码来展示如何使用 JMS 进行消息发送和接收。

1. 安装 Apache ActiveMQ

下载 ActiveMQ

首先,你需要从 Apache ActiveMQ 的官方网站下载最新版本的 ActiveMQ。假设你使用的是 Linux 系统,可以通过以下命令下载:

wget https://downloads.apache.org/activemq/5.16.3/apache-activemq-5.16.3-bin.tar.gz
解压文件

下载完成后,解压文件到你希望安装的目录:

tar -xzf apache-activemq-5.16.3-bin.tar.gz -C /opt/
启动 ActiveMQ

进入解压后的目录并启动 ActiveMQ:

cd /opt/apache-activemq-5.16.3/bin
./activemq start

你可以通过访问 ​​http://localhost:8161/admin​​ 来确认 ActiveMQ 是否成功启动。默认的用户名和密码是 ​​admin/admin​​。

2. 使用 JMS 发送和接收消息

添加依赖

如果你使用 Maven 来管理项目,需要在 ​​pom.xml​​ 文件中添加 ActiveMQ 的依赖:

<dependencies>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-client</artifactId>
        <version>5.16.3</version>
    </dependency>
</dependencies>
示例代码
发送消息
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;

public class JmsProducer {
    public static void main(String[] args) {
        try {
            // 创建连接工厂
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");

            // 创建连接
            Connection connection = connectionFactory.createConnection();
            connection.start();

            // 创建会话
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

            // 创建目的地(队列)
            Destination destination = session.createQueue("TEST.QUEUE");

            // 创建消息生产者
            MessageProducer producer = session.createProducer(destination);
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

            // 创建消息
            TextMessage message = session.createTextMessage("Hello, ActiveMQ!");

            // 发送消息
            producer.send(message);
            System.out.println("Sent message: " + message.getText());

            // 关闭资源
            producer.close();
            session.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
接收消息
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;

public class JmsConsumer {
    public static void main(String[] args) {
        try {
            // 创建连接工厂
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");

            // 创建连接
            Connection connection = connectionFactory.createConnection();
            connection.start();

            // 创建会话
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

            // 创建目的地(队列)
            Destination destination = session.createQueue("TEST.QUEUE");

            // 创建消息消费者
            MessageConsumer consumer = session.createConsumer(destination);

            // 接收消息
            Message message = consumer.receive(1000); // 等待1秒
            if (message instanceof TextMessage) {
                TextMessage textMessage = (TextMessage) message;
                System.out.println("Received message: " + textMessage.getText());
            }

            // 关闭资源
            consumer.close();
            session.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

3. 运行示例

确保 ActiveMQ 已经启动,然后分别运行 ​​JmsProducer​​ 和 ​​JmsConsumer​​ 类。你应该会看到消息被成功发送和接收的输出。


Apache ActiveMQ 是一个非常流行的开源消息中间件,支持多种消息协议,包括 JMS(Java Message Service)。下面将详细介绍如何在本地环境中安装和启动 Apache ActiveMQ,并通过 Java 代码示例展示如何使用 JMS 连接到 ActiveMQ。

安装 Apache ActiveMQ

  1. 下载 ActiveMQ
  • 访问 Apache ActiveMQ 的官方网站或 GitHub 页面,下载最新版本的 ActiveMQ。
  • 例如,可以从以下链接下载:​​https://activemq.apache.org/download-archives​​
  1. 解压文件
  • 下载完成后,解压文件到你选择的目录。例如,在 Linux 上可以使用以下命令:
tar -xzf apache-activemq-5.16.3-bin.tar.gz -C /opt/
  1. 配置环境变量(可选)
  • 为了方便管理,可以将 ActiveMQ 的 ​​bin​​ 目录添加到系统的 PATH 环境变量中。编辑 ​​~/.bashrc​​ 或 ​​~/.profile​​ 文件,添加以下内容:
export ACTIVEMQ_HOME=/opt/apache-activemq-5.16.3
export PATH=$PATH:$ACTIVEMQ_HOME/bin
  • 使配置生效:
source ~/.bashrc
  1. 启动 ActiveMQ
  • 使用以下命令启动 ActiveMQ:
bin/activemq start
  • 启动后,可以通过浏览器访问 ​​http://localhost:8161/admin​​ 来管理 ActiveMQ。默认的用户名和密码是 ​​admin/admin​​。

使用 Java 代码连接到 ActiveMQ

添加依赖

首先,确保你的项目中包含了 ActiveMQ 的 JMS 客户端库。如果你使用的是 Maven,可以在 ​​pom.xml​​ 中添加以下依赖:

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-client</artifactId>
    <version>5.16.3</version>
</dependency>
示例代码

以下是一个简单的 Java 示例,展示了如何创建一个 JMS 连接、发送和接收消息。

发送消息
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;

public class JmsProducer {
    public static void main(String[] args) {
        // ActiveMQ 连接工厂
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");

        // 创建连接
        try (Connection connection = connectionFactory.createConnection()) {
            connection.start();

            // 创建会话
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

            // 创建队列
            Destination destination = session.createQueue("TEST.QUEUE");

            // 创建消息生产者
            MessageProducer producer = session.createProducer(destination);
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

            // 创建消息
            TextMessage message = session.createTextMessage("Hello, ActiveMQ!");

            // 发送消息
            producer.send(message);
            System.out.println("Sent message: " + message.getText());
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}
接收消息
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;

public class JmsConsumer {
    public static void main(String[] args) {
        // ActiveMQ 连接工厂
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");

        // 创建连接
        try (Connection connection = connectionFactory.createConnection()) {
            connection.start();

            // 创建会话
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

            // 创建队列
            Destination destination = session.createQueue("TEST.QUEUE");

            // 创建消息消费者
            MessageConsumer consumer = session.createConsumer(destination);

            // 接收消息
            TextMessage message = (TextMessage) consumer.receive(10000);
            if (message != null) {
                System.out.println("Received message: " + message.getText());
            } else {
                System.out.println("No message received.");
            }
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

总结

以上步骤和代码示例展示了如何在本地安装和启动 Apache ActiveMQ,以及如何使用 Java 代码通过 JMS 连接到 ActiveMQ 并发送和接收消息。希望这些信息对你有所帮助!如果有任何问题或需要进一步的帮助,请随时提问。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。