java項目使用activemq

第一步:下載mq,win10安裝教程

www.baidu.com

1.啓動activemq,並進入網站 http://127.0.0.1:8161/,打開mq網站,可查看相關隊列信息
2.點擊 Manage ActiveMQ broker,登陸賬號密碼均爲 admin
在這裏插入圖片描述
第二步:idea創建maven工程,加入依賴如下:

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

第三步:編寫代碼塊,首先明確,activemq分兩大模式,主題模式和隊列模式,

一、隊列模式

1.編寫生產者代碼

public class AppProducer {

    private static final  String url="tcp://192.168.0.102:61616"; //61616是mq的默認端口
    private static final  String queue="queue-test";//隊列名字

    public static void main(String[] args) throws JMSException {
        //1.創建ConnectionFactory(連接工廠)
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
        //2.創建connect(連接)
        Connection connection = connectionFactory.createConnection();
        //3.啓動連接
        connection.start();
        //4.創建會話,倆參數
        Session session= connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //5.目的地,消息發送的地方
        Destination destination = session.createQueue(queue);
        //6.創建生產者,向目的地發送消息
        MessageProducer producer = session.createProducer(destination);
        //循環的發送消息
        for(int i=0;i<100;i++){
            //7.創建消息
            TextMessage textMessage = session.createTextMessage("test"+i);
            //8.發佈消息
            producer.send(textMessage);
            System.out.println("發送消息 = " + textMessage);
        }
        //9.關閉連接
        connection.close();
    }
}

2.編寫消費者代碼

public class AppConsumer {
    private static final  String url="tcp://192.168.0.102:61616"; //61616是mq的默認端口
    private static final  String queue="queue-test";//隊列名字

    public static void main(String[] args) throws JMSException {
        //1.創建ConnectionFactory(連接工廠)
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
        //2.創建connect(連接)
        Connection connection = connectionFactory.createConnection();
        //3.啓動連接
        connection.start();
        //4.創建會話,倆參數
        Session session= connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //5.目的地,消息發送的地方
        Destination destination = session.createQueue(queue);
        //6.創建消費者,去目的地取消息
        MessageConsumer consumer = session.createConsumer(destination);
        //7.消費者監聽消費信息,創建一個監聽器
        consumer.setMessageListener(new MessageListener() {
            public void onMessage(Message message) {
                TextMessage textMessage = (TextMessage) message;
                System.out.println("接受消息 = " + textMessage);
            }
        });
        //8.關閉連接
        //connection.close();
    }
}





二、主題模式

1.發佈者代碼

/**
 * 主題模式 發佈者
 */
public class AppProducer {

    private static final  String url="tcp://192.168.0.102:61616"; //61616是mq的默認端口
    private static final  String topicName="topic-test";//隊列名字

    public static void main(String[] args) throws JMSException {
        //1.創建ConnectionFactory(連接工廠)
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
        //2.創建connect(連接)
        Connection connection = connectionFactory.createConnection();
        //3.啓動連接
        connection.start();
        //4.創建會話,倆參數
        Session session= connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //5.目的地,消息發送的地方
        Destination destination = session.createTopic(topicName);
        //6.創建生產者,向目的地發送消息
        MessageProducer producer = session.createProducer(destination);
        //循環的發送消息
        for(int i=0;i<100;i++){
            //7.創建消息
            TextMessage textMessage = session.createTextMessage("test"+i);
            //8.發佈消息
            producer.send(textMessage);
            System.out.println("發送消息 = " + textMessage);
        }
        //9.關閉連接
        connection.close();
    }
}

2.訂閱者代碼

/**
 * 主題模式 訂閱者,必須要先訂閱(通俗點,就是要先啓動訂閱者,再啓動發佈者),發佈者發佈的消息(訂閱者)才能收到
 */
public class AppConsumer {
    private static final  String url="tcp://192.168.0.102:61616"; //61616是mq的默認端口
    private static final  String topicName="topic-test";//隊列名字

    public static void main(String[] args) throws JMSException {
        //1.創建ConnectionFactory(連接工廠)
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
        //2.創建connect(連接)
        Connection connection = connectionFactory.createConnection();
        //3.啓動連接
        connection.start();
        //4.創建會話,倆參數
        Session session= connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //5.目的地,消息發送的地方
        Destination destination = session.createTopic(topicName);
        //6.創建消費者,去目的地取消息
        MessageConsumer consumer = session.createConsumer(destination);
        //7.消費者監聽消費信息,創建一個監聽器
        consumer.setMessageListener(new MessageListener() {
            public void onMessage(Message message) {
                TextMessage textMessage = (TextMessage) message;
                System.out.println("接受消息 = " + textMessage);
            }
        });
        //8.關閉連接
        //connection.close();
    }

按照註釋裏一步一步地看就行了,簡單的使用就到此結束了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章