ActiveMQ

本文介绍ActiveMQ的基础安装及使用方法,包括如何在Linux和Windows环境下部署ActiveMQ服务器,并通过示例代码演示如何发送和接收消息。

一、ActiveMQ

  首先,ActiveMQ不是一个框架,它不是struct,webx,netty这种框架,它更像是tomcat服务器,因为你使用它之前必须启动它,activeMQ和JMS的关系有点类似于tomcat和servlet的关系,tomcat实现了servlet规范,同理activeMQ实现了JMS规范,它们都是服务器,在使用其服务之前需要先把服务器启动起来。

//#准备activeMQ的环境和tomcat的环境一样简单。
//1.下载:wget http://apache.freelamp.com//activemq/apache-activemq/5.4.2/apache-activemq-5.4.2-bin.tar.gz
//2.解压:tar xvf apache-activemq-5.4.2-bin.tar.gz
//3.启动:进入bin目录执行activemq脚本,输入 http://localhost:8161,ActiveMQ服务器成功启动之后,我们就可以向这个服务器发送消息,或者从这个服务器接收消息了

  上面是Linux环境下的安装,解压和启动。下面是Windows环境下的ActiveMQ的配置和使用。http://activemq.apache.org/download.html下载稳定版本。

二、ActiveMQ发消息

复制代码
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
 
public class SendMessage {
 
    private static final String url          = "tcp://10.20.156.22:61616";
    private static final String QUEUE_NAME   = "yunpeng.jiangyp";
    protected String            expectedBody = "<hello>world!</hello>";
 
    public void sendMessage() throws JMSException {
 
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
        Connection connection = connectionFactory.createConnection();
        connection.start();
 
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Destination desion = session.createQueue(QUEUE_NAME);
        MessageProducer producer = session.createProducer(desion);
        TextMessage message = session.createTextMessage(expectedBody);
        producer.send(message);
        connection.close();
    }
 
    public static void main(String[] args) throws JMSException {
        SendMessage sndMsg = new SendMessage();
        sndMsg.sendMessage();
    }
}
复制代码

这段代码很简单,就是向activemq服务器发送一条消息,当成功发送给activemq之后,可以在(http://10.20.156.22:8161/admin/queues.jsp)activemq服务器的控制台看到这条消息。控制台显示yunpeng.jiangyp堆积了2条消息。

三、ActiveMQ收消息

 

复制代码
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
 
public class ReceiveMessage {
 
    private static final String url        = "tcp://10.20.156.22:61616";
    private static final String QUEUE_NAME = "yunpeng.jiangyp";
 
    public static void main(String[] args) throws JMSException {
 
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(url);
        Connection connection = factory.createConnection();
        connection.start();
 
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Destination desion = session.createQueue(QUEUE_NAME);
        MessageConsumer consumer = session.createConsumer(desion);
        while (true) {
 
            Message message = consumer.receive(1000);
            if (message == null) break;
            if (message instanceof TextMessage) {
                TextMessage textMsg = (TextMessage) message;
                String msg = textMsg.getText();
                System.out.println(msg);
            }
        }
        connection.close();
 
    }
}
复制代码

 

  这段代码也很简单,就是从activemq服务器接收一条消息,可以发现发送和接收消息都需要创建Connection,Session,Queue,唯一不同的是发送消息是创建MessageProducer,而接收消息是创建MessageConsumer,这也非常形象的证明了activemq的生产者和消费者模式。运行这段代码会打印出之前发送的消息信息,同时控制台会显示两条堆积的消息被消费。

  在JMS中两种发送消息的方式,包含point-to-point 和 publish/subscribe。

四、

### ActiveMQ 使用指南和配置教程 ActiveMQ 是一个功能强大的消息中间件,广泛应用于分布式系统中。以下是关于 ActiveMQ 的安装、配置及使用方法的详细说明。 #### 1. 安装与启动 ActiveMQ 的安装过程相对简单。首先需要下载并解压 ActiveMQ 的二进制文件[^2]。完成解压后,进入 `bin` 目录,根据操作系统选择合适的启动脚本: ```bash # 在 Linux 或 macOS 上 ./activemq start # 在 Windows 上 activemq.bat start ``` 启动后,可以通过访问默认管理界面 `http://localhost:8161/admin/` 来验证是否成功运行。 #### 2. 配置文件详解 ActiveMQ 的核心配置文件为 `activemq.xml`,位于安装目录下的 `conf` 文件夹中[^5]。以下是一些常见的配置项: - **持久化存储**:ActiveMQ 支持多种持久化机制,如 KahaDB 和 LevelDB。默认使用 KahaDB,其配置如下: ```xml <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </persistenceAdapter> ``` 如果需要切换到 LevelDB,可以修改为: ```xml <persistenceAdapter> <levelDB directory="${activemq.data}/leveldb"/> </persistenceAdapter> ``` - **日志存储路径**:日志文件通常存储在 `%activemq安装目录%/data/kahadb` 中[^5]。 #### 3. 使用方法 ActiveMQ 提供了多种使用模式,包括点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)。具体操作步骤可参考相关文档[^4]。 以下是一个简单的 Java 示例代码,展示如何向队列发送消息: ```java import javax.jms.*; import org.apache.activemq.ActiveMQConnectionFactory; public class Producer { public static void main(String[] args) throws JMSException { 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); TextMessage message = session.createTextMessage("Hello ActiveMQ!"); producer.send(message); session.close(); connection.close(); } } ``` #### 4. 管理控制台 ActiveMQ 提供了一个基于 Web 的管理控制台,用于监控和管理消息队列及主题。可以通过以下方式访问控制台[^3]: - 打开浏览器并输入地址:`http://localhost:8161/admin/` - 默认用户名和密码为 `admin/admin` #### 5. 常见问题解决 如果在使用过程中遇到问题,可以参考以下建议: - **无法连接到服务器**:确保 ActiveMQ 服务已正确启动,并检查防火墙设置。 - **日志文件过大**:调整日志级别或清理旧的日志文件[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值