您好,登錄后才能下訂單哦!
這篇文章主要介紹了ActiveMQ持久化機制代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
用戶注冊成功后發短信提醒
同步http
異步mq
JMS中兩種通訊模式:
發布訂閱 一對多 topic 去過消費者集群的話 都會消費
消息隊列 點對點 queue 去過消費者集群的話 均攤消費
場景問題: 服務器斷電重啟,未被消費的消息是否會在重啟之后消費?
兩種模式:
1、非持久性,服務器斷電(關閉)之后,使用非持久性模型時,沒有被消費的消息不會繼續消費,全部丟失 。程序會報一個連接關閉異常,停止運行。繼續啟動服務器運行程序,不會接收任何消息。
2、持久性,服務器斷電(關閉)之后,使用持久性模型時,沒有被消費的消息會繼續消費,程序也會報連接關閉異常,但再次啟動服務器和程序后,接收方還能繼續原來的消息再次接收。
package com.toov5.producer; import javax.jms.Connection; import javax.jms.DeliveryMode; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; public class producerTest { // mq通訊地址 private static String url = "tcp://192.168.91.6:61616"; // 隊列名稱 private static String queueName = "toov5_queue"; public static void main(String[] args) throws JMSException { // 先創建連接工廠 密碼默認采用admin admin ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(url); // 創建連接 Connection connection = activeMQConnectionFactory.createConnection(); // 啟動連接 connection.start(); // 創建會話 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 是否需要事務方式提交 消費方式默認自動簽收 // 拿到session 創建目標 創建隊列 Queue queue = session.createQueue(queueName); // 創建生產者 MessageProducer producer = session.createProducer(queue); // 生產者生產的消息 是放在這個queue里面的 producer.setDeliveryMode(DeliveryMode.PERSISTENT); //默認非持久化的 設置持久化 for (int i = 1; i < 10; i++) { // 拿到隊列 創建消息 TextMessage textMessage = session.createTextMessage("消息內容" + i); // 發送消息 producer.send(textMessage); } // 關閉連接 connection.close(); System.out.println("消息發送完畢"); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。