第一步是:下載activityMQ的壓縮包http://activemq.apache.org/activemq-5156-release.html
第二步是:解壓下載的壓縮包,進入文件中打開bin文件夾,並根據window的版本,選擇32位還是64位的文件夾activitymq.bat
雙擊activitymq.bat
然後打開http://localhost:8161/admin/ 用戶名和密碼默認都默認爲admin,直接輸入登錄。
然後繼續打開http://localhost:8161/admin/queues.jsp 可以看到消息的隊列請求和處理情況。
接下來創建兩個類,發送和接收消息的類,在創建類之前,先導入activityMQ需要的jar包
在壓縮包的中有個jar包,直接導入就完成了
下面是要創建的連個類
接收類Receiver:
import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; /** * * * 類名稱:Receiver * 類描述: activeMQ接收類 * 創建時間:2018年10月6日 上午19:31:35 * 修改人: * 修改時間: * 修改備註: * @version * */ public class Receiver { public static void main(String[] args) { //connectionFactory 連接工廠,JMS用它創建連接 ConnectionFactory connectionFactory; //connection JMS客戶端到JMS provider 的連接 Connection connection = null; //session一個發送或者接收的線程 Session session; //destination 消息目的地,發送給誰接收 Destination destination; //消費者消息接收者 MessageConsumer consumer; connectionFactory = new ActiveMQConnectionFactory( // ActiveMQConnection.DEFAULT_USER, // ActiveMQConnection.DEFAULT_PASSWORD, "admin", "admin", "tcp://localhost:61616"); try { //構造工廠得到連接對象 connection = connectionFactory.createConnection(); //啓動 connection.start(); //獲取操作連接 session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); destination = session.createQueue("FirstQueue"); consumer = session.createConsumer(destination); while(true){ //設置接收者收消息的時間,爲了方便測試,這裏暫定設置爲100s TextMessage message = (TextMessage)consumer.receive(100); if(null != message){ System.out.println("收到消息==="+message.getText()); }else{ break; } } } catch (Exception e) { e.printStackTrace(); }finally{ try { if(null != connection){ connection.close(); } } catch (Throwable ignore) { } } } }
發送類 sender:
import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; /** * * * 類名稱:Sender * 類描述: ActiveMQ發送者 * 創建時間:2018年10月6日 上午19:01:02 * 修改人: * 修改時間: * 修改備註: * @version * */ public class Sender { private static final int SEND_NUMBER = 10; public static void main(String[] args) { //ConnectionFactory是連接工廠,JMS用它創建連接 ConnectionFactory connectionFactory; //Connection JMS客戶端到JMS provider的連接 Connection connection = null; //Session 一個發送或者接收消息的線程 Session session; //Destination 消息發送目的地,消息發送給誰接收 Destination destination; //MessageProducer 消息發送者 MessageProducer messageProducer; //構造ConnectionFactory 實例對象,此處採用ActiveMQ的實現jar connectionFactory = new ActiveMQConnectionFactory( // ActiveMQConnection.DEFAULT_USER, // ActiveMQConnection.DEFAULT_PASSWORD, "admin", "admin", "tcp://localhost:61616"); try { //構造工廠得到連接對象 connection = connectionFactory.createConnection(); //啓動 connection.start(); //獲取操作連接 session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); //創建一個Queue,名稱爲SongLiGuo_FirstQueue destination = session.createQueue("FirstQueue"); //得到消息生產者【發送者】 messageProducer = session.createProducer(destination); //設置不持久化,根據實際情況而定 messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); //構造消息,此處寫死,項目就是參數或者方法獲取 sendMessage(session, messageProducer); session.commit(); } catch (Exception e) { e.printStackTrace(); }finally { try { if(null != connection){ connection.close(); } } catch (Throwable ignore) { } } } public static void sendMessage(Session session, MessageProducer producer)throws Exception { for (int i = 1; i <= SEND_NUMBER; i++) { TextMessage message = session.createTextMessage("ActiveMq 發送的消息" + i); // 發送消息到目的地方 System.out.println("發送消息:" + "ActiveMq 發送的消息" + i); producer.send(message); } } }
完成以上工作,先執行sender類,在執行Receiver類,然後到http://localhost:8161/admin/queues.jsp可以查看消息的請求和處理情況。
以上就算是activityMQ的入門瞭解吧