activetyMQ入門瞭解
阿新 • • 發佈:2018-12-13
第二步是:解壓下載的壓縮包,進入檔案中開啟bin資料夾,並根據window的版本,選擇32位還是64位的資料夾activitymq.bat
雙擊activitymq.bat
接下來建立兩個類,傳送和接收訊息的類,在建立類之前,先匯入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); } } }
以上就算是activityMQ的入門瞭解吧