您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關ActiveMQ中間消息件如何在Java項目中使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
消息一共有兩種接收和發送形式:點對點和發布定閱模式,也就是“一對一”和“一對多”。
1.導包(maven):
<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-client</artifactId> <version>5.13.4</version> </dependency>
2.開始寫類,提供者(發送者)和消費者(接收者)是兩個不同的項目,我們先創建普通的maven項目,而不是web項目點對點的方式(消息只能被消費一次,如果同時有多個消費者,誰先搶到就是誰的)
消息提供者
public static void main(String[] args) throws JMSException { //創建連接工廠,這個參數就是自己的activeMQ的地址 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616"); //2.創建連接 Connection connection = connectionFactory.createConnection(); //3.啟動連接 connection.start(); //4.獲取session(會話對象) /* arg0 是否啟用事務 arg1 消息的確認方式 自動確認 */ Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); //5.創建一個隊列對象,名稱 Queue firstQueue = session.createQueue("firstQueue"); //6.創建一個消息的生產者對象 // Destination destination = ;//目標對象 MessageProducer producer = session.createProducer(firstQueue); //7.創建一個消息 TextMessage textMessage = session.createTextMessage("歡迎來到奇的天喻軟件"); //8.發送消息 producer.send(textMessage); //9.關閉資源 producer.close(); session.close(); connection.close(); }
消息消費者
前幾步是一樣的,都是創建連接,只有第6步不一樣,創建的是一個消費者
public static void main(String[] args) throws JMSException, IOException { ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616"); //2.創建連接 Connection connection = connectionFactory.createConnection(); //3.啟動連接 connection.start(); //4.獲取session(會話對象) /* arg0 是否啟用事務 arg1 消息的確認方式 自動確認 */ Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); //5.創建一個隊列對象,名稱 Queue firstQueue = session.createQueue("firstQueue"); //6.創建消息消費者對象 MessageConsumer consumer = session.createConsumer(firstQueue); //7.設置監聽 consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { TextMessage textMessage = (TextMessage)message; try { System.out.println("提取的消息是"+textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } }); //8.等待鍵盤輸入 //目的是為了讓程序停止來看效果 System.in.read(); //9.關閉資源 consumer.close(); session.close(); connection.close(); }
發布訂閱模式(發布消息后,只有在之前運行的消費者才能收到,消息被任何一個消費者消費后,以后啟動的消費者不能消費之前的消息)
消息提供者
//創建連接工廠 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616"); //2.創建連接 Connection connection = connectionFactory.createConnection(); //3.啟動連接 connection.start(); //4.獲取session(會話對象) /* arg0 是否啟用事務 arg1 消息的確認方式 自動確認 */ Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); //5 Topic topic = session.createTopic("first-topic"); //6.創建一個消息的生產者對象 // Destination destination = ;//目標對象 MessageProducer producer = session.createProducer(topic); //7.創建一個消息 TextMessage textMessage = session.createTextMessage("歡迎來到奇的天喻軟件"); //8.發送消息 producer.send(textMessage); //9.關閉資源 producer.close(); session.close(); connection.close();
消費者
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616"); //2.創建連接 Connection connection = connectionFactory.createConnection(); //3.啟動連接 connection.start(); //4.獲取session(會話對象) /* arg0 是否啟用事務 arg1 消息的確認方式 自動確認 */ Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); //5 Topic topic = session.createTopic("first-topic"); //6.創建消息消費者對象 MessageConsumer consumer = session.createConsumer(topic); //7.設置監聽 consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { TextMessage textMessage = (TextMessage)message; try { System.out.println("提取的消息是"+textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } }); //8.等待鍵盤輸入 //目的是為了讓程序停止來看效果 System.in.read(); //9.關閉資源 consumer.close(); session.close(); connection.close();
看完上述內容,你們對ActiveMQ中間消息件如何在Java項目中使用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。