ActiveMQ(一、簡單的搭建使用)

1、先下載安裝運行

地址:http://activemq.apache.org/download-archives.html

選擇一個版本  根據自己電腦上jdk版本  apache-activemq-5.15.0以後的是1.8以上版本  


在壓縮後的文件的bin目錄下找對應自己的系統的文件  運行bat


一般運行之後出現界面會像下面這樣,如果出現系統找不到指定文件 jvm什麼的 要麼jdk沒裝 要麼版本不匹配需要低一點的activemq或者高版本的jdk


運行http://localhost:8161出現界面如下

點擊鏈接登錄 會輸入密碼 初始用戶名和密碼  都是admin (可以改登錄的用戶名和密碼,在conf文件夾activemq.xml裏配置

 運作成功

2、使用

具體使用涉及到兩個概念 生產者和消費者

最開始點擊頁面queues和Topics兩個下面是空的 


引入jar包

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-client</artifactId>
    <version>5.14.3</version>
</dependency>

創建一個生產者類(注意引入的包不要錯了)

package com.example.Test;
import javax.jms.*;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Producter {
	//默認連接用戶名
		private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
	    //默認連接密碼
	    private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
	    //默認連接地址
	    private static final String BROKER_URL = ActiveMQConnection.DEFAULT_BROKER_URL;

	    public static void main(String[] args) {
	        //連接工廠
	        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER_URL);

	        try {
	            //連接
	            Connection connection = connectionFactory.createConnection();
	            //啓動連接
	            connection.start();
	            //創建session
	            Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
	            //消息目的地
	            Destination destination = session.createQueue("hello");
	            //消息生產者
	            MessageProducer producer = session.createProducer(destination);
	            //設置不持久化,此處學習,實際根據項目決定
	            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

	            //發送消息
	            for (int i = 0; i < 10; i++) {
	                //創建一條文本消息
	                TextMessage message = session.createTextMessage("ActiveMQ:這是第 " + i + " 條消息");
	                //生產者發送消息
	                producer.send(message);
	            }

	            session.commit();
	            session.close();
	            connection.close();
	        } catch (JMSException e) {
	            e.printStackTrace();
	        }
	    }
}

創建一個消費者類(這裏的包也一樣 不要引錯)

package com.example.Test;

import javax.jms.*;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Comsumer {
	//默認連接用戶名
    private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
    //默認連接密碼
    private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
    //默認連接地址
    private static final String BROKER_URL = ActiveMQConnection.DEFAULT_BROKER_URL;

    public static void main(String[] args) {
        //連接工廠
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER_URL);
        try {
            //連接
            Connection connection = connectionFactory.createConnection();
            //啓動連接
            connection.start();
            //創建session
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            //消息目的地
            Destination destination = session.createQueue("hello");
            //消息消費者
            MessageConsumer consumer = session.createConsumer(destination);
            while (true) {
                TextMessage message = (TextMessage) consumer.receive();
                if (message != null) {
                    System.out.println("接收到消息: " + message.getText());
                } else {
                    break;
                }
            }
            session.close();
            connection.close();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }

}

先運行生產者  查看頁面Queues下面列表出現信息  Topics會有具體消費情況


Number Of Pending Messages :等待消費的消息,這個是當前未出隊列的數量; 

Number Of Consumers 消費者的數量;

Messages Enqueued  進入隊列的消息(activeMQ 重啓後會清零)

Messages Dequeued  出了隊列的消息(qctiveMQ 重啓後會清零)

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