首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【详解】JMSActiveMQ的安装和启动

【详解】JMSActiveMQ的安装和启动

原创
作者头像
大盘鸡拌面
发布2025-11-18 21:18:06
发布2025-11-18 21:18:06
1220
举报

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:

代码语言:javascript
复制
sudo apt update
sudo apt install openjdk-11-jdk

验证安装是否成功:

代码语言:javascript
复制
java -version

2. 下载 ActiveMQ

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

代码语言:javascript
复制
wget https://downloads.apache.org/activemq/5.16.3/apache-activemq-5.16.3-bin.tar.gz

3. 解压安装包

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

代码语言:javascript
复制
sudo tar -xzf apache-activemq-5.16.3-bin.tar.gz -C /opt

进入解压后的目录:

代码语言:javascript
复制
cd /opt/apache-activemq-5.16.3

4. 启动 ActiveMQ

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

代码语言:javascript
复制
bin/activemq start

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

代码语言:javascript
复制
tail -f data/activemq.log

5. 验证安装

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

代码语言:javascript
复制
http://localhost:8161/admin/

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

6. 停止 ActiveMQ

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

代码语言:javascript
复制
bin/activemq stop

7. 配置 ActiveMQ

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

修改端口号

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

代码语言:javascript
复制
<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 系统,可以通过以下命令下载:

代码语言:javascript
复制
wget https://downloads.apache.org/activemq/5.16.3/apache-activemq-5.16.3-bin.tar.gz
解压文件

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

代码语言:javascript
复制
tar -xzf apache-activemq-5.16.3-bin.tar.gz -C /opt/
启动 ActiveMQ

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

代码语言:javascript
复制
cd /opt/apache-activemq-5.16.3/bin
./activemq start

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

2. 使用 JMS 发送和接收消息
添加依赖

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

代码语言:javascript
复制
<dependencies>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-client</artifactId>
        <version>5.16.3</version>
    </dependency>
</dependencies>
示例代码
发送消息
代码语言:javascript
复制
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();
        }
    }
}
接收消息
代码语言:javascript
复制
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
  1. 解压文件
  • 下载完成后,解压文件到你选择的目录。例如,在 Linux 上可以使用以下命令:
代码语言:javascript
复制
tar -xzf apache-activemq-5.16.3-bin.tar.gz -C /opt/
  1. 配置环境变量(可选)
  • 为了方便管理,可以将 ActiveMQ 的 ​​bin​​ 目录添加到系统的 PATH 环境变量中。编辑 ​​~/.bashrc​​ 或 ​​~/.profile​​ 文件,添加以下内容:
代码语言:javascript
复制
export ACTIVEMQ_HOME=/opt/apache-activemq-5.16.3
export PATH=$PATH:$ACTIVEMQ_HOME/bin
  • 使配置生效:
代码语言:javascript
复制
source ~/.bashrc
  1. 启动 ActiveMQ
  • 使用以下命令启动 ActiveMQ:
代码语言:javascript
复制
bin/activemq start
  • 启动后,可以通过浏览器访问 ​​http://localhost:8161/admin​​ 来管理 ActiveMQ。默认的用户名和密码是 ​​admin/admin​​。
使用 Java 代码连接到 ActiveMQ
添加依赖

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

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-client</artifactId>
    <version>5.16.3</version>
</dependency>
示例代码

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

发送消息
代码语言:javascript
复制
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();
        }
    }
}
接收消息
代码语言:javascript
复制
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 并发送和接收消息。希望这些信息对你有所帮助!如果有任何问题或需要进一步的帮助,请随时提问。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JMS ActiveMQ 的安装和启动
    • 1. 环境准备
      • 安装 JDK
    • 2. 下载 ActiveMQ
    • 3. 解压安装包
    • 4. 启动 ActiveMQ
    • 5. 验证安装
    • 6. 停止 ActiveMQ
    • 7. 配置 ActiveMQ
      • 修改端口号
      • 设置持久化策略
    • 8. 常见问题
      • 无法连接到 Web 控制台
      • 日志文件没有更新
      • 1. 安装 Apache ActiveMQ
      • 2. 使用 JMS 发送和接收消息
      • 3. 运行示例
      • 安装 Apache ActiveMQ
      • 使用 Java 代码连接到 ActiveMQ
      • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档