生活随笔
收集整理的這篇文章主要介紹了
ActiveMQ点对点消息通信demo
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
1.下載ActiveMQ,安裝并啟動activeMQ,
2.登錄控制臺,http://localhost:8161/admin/index.jsp? ? ?default: admin/admin
新建queue名為:FirstQueue
依賴包:
<dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-core</artifactId><version>5.7.0</version>
</dependency>
package?org.jun.util;import?javax.jms.Connection;
import?javax.jms.ConnectionFactory;
import?javax.jms.DeliveryMode;
import?javax.jms.Destination;
import?javax.jms.MessageProducer;
import?javax.jms.Session;
import?javax.jms.TextMessage;import?org.apache.activemq.ActiveMQConnection;
import?org.apache.activemq.ActiveMQConnectionFactory;public?class?ActiveMQSenderUtil?{public?static?void?main(String?arg[])?{Sender("FirstQueue",?"通知:everybody,高性能activeMQ!");}/***?發送消息*??*?@param?content 發送內容*?@param?queueName ?隊列名*/public?static?void?Sender(String?queueName,?String?content)?{//?ConnectionFactory?:連接工廠,JMS?用它創建連接工廠實例,此處采用ActiveMq的實現jarConnectionFactory?connectionFactory?=?new?ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");?//tcp地址//?Connection?:JMS?客戶端到JMS?Provider?的連接Connection?connection?=?null;//?Session:?一個發送或接收消息的線程Session?session;//?Destination?:消息的目的地;消息發送給誰.Destination?destination;//?MessageProducer:消息發送者MessageProducer?producer;try?{//?構造從工廠得到連接對象connection?=?connectionFactory.createConnection();//?啟動connection.start();//?獲取操作連接session?=?connection.createSession(Boolean.TRUE,?Session.AUTO_ACKNOWLEDGE);//?獲取session注意參數值xingbo.xu-queue是一個服務器的queue,須在在ActiveMq的console配置destination?=?session.createQueue(queueName);//?得到消息生成者【發送者】producer?=?session.createProducer(destination);//?設置不持久化,此處學習,實際根據項目決定producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);//?構造消息,此處寫死,項目就是參數,或者方法獲取TextMessage?message?=?session.createTextMessage(content);System.out.println("ActiveMq?發送的消息:"?+?content);producer.send(message);//?發送消息到目的地方session.commit();}?catch?(Exception?e)?{e.printStackTrace();}?finally?{try?{if?(null?!=?connection)?{connection.close();}}?catch?(Throwable?ignore)?{}}}
} package?org.jun.util;import?javax.jms.Connection;
import?javax.jms.ConnectionFactory;
import?javax.jms.Destination;
import?javax.jms.MessageConsumer;
import?javax.jms.Session;
import?javax.jms.TextMessage;
import?org.apache.activemq.ActiveMQConnection;
import?org.apache.activemq.ActiveMQConnectionFactory;public?class?ActiveMQReceiverUtil?{public?static?void?main(String?args[])?{queueReceiver("FirstQueue");}/***?接收消息*?*?@param?quequName 隊列名*?@return*/public?static?String?queueReceiver(String?quequName){//?ConnectionFactory?:連接工廠,JMS?用它創建連接ConnectionFactory?connectionFactory?=?new?ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");//tcp地址//?Connection?:JMS?客戶端到JMS?Provider?的連接Connection?connection?=?null;//?Session:?一個發送或接收消息的線程Session?session;//?Destination?:消息的目的地;消息發送給誰.Destination?destination;//?消費者,消息接收者MessageConsumer?consumer;String?receiveMsg?=?"";try?{//?構造從工廠得到連接對象connection?=?connectionFactory.createConnection();//?啟動connection.start();//?獲取操作連接session?=?connection.createSession(Boolean.FALSE,?Session.AUTO_ACKNOWLEDGE);//?獲取session注意參數值xingbo.xu-queue是一個服務器的queue,須在在ActiveMq的console配置destination?=?session.createQueue(quequName);consumer?=?session.createConsumer(destination);while?(true)?{//設置接收者接收消息的時間,為了便于測試,這里誰定為100sTextMessage?message?=?(TextMessage)?consumer.receive(100000);if?(null?!=?message)?{receiveMsg?=?message.getText();System.out.println("收到消息:"?+?message.getText());}?else?{break;}}}?catch?(Exception?e)?{e.printStackTrace();}?finally?{try?{if?(null?!=?connection)?{connection.close();???????????????? }}?catch?(Throwable?ignore)?{}}return?receiveMsg;}
}
運行結果:
轉載于:https://my.oschina.net/xiejunbo/blog/505252
總結
以上是生活随笔為你收集整理的ActiveMQ点对点消息通信demo的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。