ActiveMQ(一)--简介

一、简介

消息中间件(Message Oriented Middleware, MOM)

不使用MOM,那么系统A调用系统B,这是一种同步调用,A系统会等待B系统的返回,然后A系统才能继续执行。
使用MOM,系统A调用系统B,这是一种异步调用。A把消息发到MOM之后,就不管了,继续往下执行。
 

二、安装和启动

去官网下载Linux的包,放到Linux的安装目录,解压即可。

启动:   cd bin       ./activemq start

检查是否启动:访问http://192.168.25.128:8161/admin/       用户名和密码都是:admin

三、发消息实例

    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-all</artifactId>
        <version>5.12.0</version>
    </dependency>

    <dependency>
        <groupId>org.apache.xbean</groupId>
        <artifactId>xbean-spring</artifactId>
        <version>3.4</version>
    </dependency>
import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

public class QueueSender {
    public static void main(String[] args) throws JMSException, InterruptedException {
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.128:61616");
        Connection connection = connectionFactory.createConnection();
        connection.start();

        Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
        Destination destination = session.createQueue("my-queue");

        MessageProducer producer = session.createProducer(destination);

        for (int i = 0; i < 3; i++) {
            TextMessage message = session.createTextMessage("message--" + i);
            producer.send(message);

        }

        session.commit();
        session.close();
        connection.close();
    }
}
import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

public class QueueReceiver {
    public static void main(String[] args) throws JMSException {
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.128:61616");
        Connection connection = connectionFactory.createConnection();
        connection.start();
        Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
        Destination destination = session.createQueue("my-queue");
        MessageConsumer consumer = session.createConsumer(destination);
        int i = 0;
        while (i < 3) {
            i++;
            TextMessage message = (TextMessage) consumer.receive();
            session.commit();
            System.out.println("收到的消息:" + message.getText());
        }
        session.close();
        connection.close();
    }
}

猜你喜欢

转载自blog.csdn.net/csdn_kenneth/article/details/82056558
今日推荐