ActiveMQ訊息中介軟體-hello world
阿新 • • 發佈:2018-11-20
生產者
package com.wuk.mq; import java.util.concurrent.TimeUnit; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; /** * 生產者 * @author Administrator * */ public class Send { public static void main(String[] args) throws Exception { //1、建立工廠連線物件,需要制定ip和埠號 預設埠號為tcp://127.0.0.1:61616 ConnectionFactory connectionFactory=new ActiveMQConnectionFactory (ActiveMQConnectionFactory.DEFAULT_USER, ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://127.0.0.1:61616"); //2、使用連線工廠建立一個連線物件 Connection connection=connectionFactory.createConnection(); //3、開啟連線 connection.start(); //4、使用連線物件建立會話(session)物件 //引數1 是是否啟用事務 引數2 簽收模式,一般是自動簽收 Session session=connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); //5、使用會話物件建立目標物件,包含queue和topic(一對一和一對多) Destination destination=session.createQueue("test-queue"); //6、使用會話物件建立生產者物件 MessageProducer producer=session.createProducer(destination); //設定持久化和非持久化狀態 //producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); //7、使用會話物件建立一個訊息物件 for(int i=0;i<10;i++){ TextMessage textMessage= session.createTextMessage("我是訊息內容"+i); //8、傳送訊息 //producer.send(destination, message, deliveryMode, priority, timeToLive); //第一個引數是目標地址 //第二個引數是具體的資料資訊 //第三個引數是傳輸資料的模式 //第四個引數是優先順序 //第五個引數是訊息的過期時間 producer.send(destination,textMessage); TimeUnit.SECONDS.sleep(1); } //9、關閉資源 if(producer!=null){ producer.close(); } if(session!=null){ session.close(); } if(connection!=null){ connection.close(); } } }
消費者
package com.wuk.mq; 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.ActiveMQConnectionFactory; /** * 消費者 * * @author Administrator * */ public class Receive { public static void main(String[] args) throws Exception { // 1、建立工廠連線物件,需要制定ip和埠號 預設埠號為tcp://127.0.0.1:61616 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnectionFactory.DEFAULT_USER, ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://127.0.0.1:61616"); // 2、使用連線工廠建立一個連線物件 Connection connection = connectionFactory.createConnection(); // 3、開啟連線 connection.start(); // 4、使用連線物件建立會話(session)物件 // 引數1 是是否啟用事務 引數2 簽收模式,一般是自動簽收 Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); // 5、使用會話物件建立目標物件,包含queue和topic(一對一和一對多) Destination destination = session.createQueue("test-queue"); // 6、使用會話物件建立消費者物件 MessageConsumer consumer = session.createConsumer(destination); while(true){ TextMessage textMessage=(TextMessage) consumer.receive(); System.out.println("消費資料"+textMessage.getText()); } } }