ActiveMQ持久化機(jī)制代碼實(shí)例
這篇文章主要介紹了ActiveMQ持久化機(jī)制代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
用戶注冊(cè)成功后發(fā)短信提醒
同步http
異步mq
JMS中兩種通訊模式:
發(fā)布訂閱 一對(duì)多 topic 去過消費(fèi)者集群的話 都會(huì)消費(fèi)
消息隊(duì)列 點(diǎn)對(duì)點(diǎn) queue 去過消費(fèi)者集群的話 均攤消費(fèi)
場(chǎng)景問題: 服務(wù)器斷電重啟,未被消費(fèi)的消息是否會(huì)在重啟之后消費(fèi)?
兩種模式:
1、非持久性,服務(wù)器斷電(關(guān)閉)之后,使用非持久性模型時(shí),沒有被消費(fèi)的消息不會(huì)繼續(xù)消費(fèi),全部丟失 。程序會(huì)報(bào)一個(gè)連接關(guān)閉異常,停止運(yùn)行。繼續(xù)啟動(dòng)服務(wù)器運(yùn)行程序,不會(huì)接收任何消息。
2、持久性,服務(wù)器斷電(關(guān)閉)之后,使用持久性模型時(shí),沒有被消費(fèi)的消息會(huì)繼續(xù)消費(fèi),程序也會(huì)報(bào)連接關(guān)閉異常,但再次啟動(dòng)服務(wù)器和程序后,接收方還能繼續(xù)原來的消息再次接收。
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"; // 隊(duì)列名稱 private static String queueName = "toov5_queue"; public static void main(String[] args) throws JMSException { // 先創(chuàng)建連接工廠 密碼默認(rèn)采用admin admin ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(url); // 創(chuàng)建連接 Connection connection = activeMQConnectionFactory.createConnection(); // 啟動(dòng)連接 connection.start(); // 創(chuàng)建會(huì)話 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 是否需要事務(wù)方式提交 消費(fèi)方式默認(rèn)自動(dòng)簽收 // 拿到session 創(chuàng)建目標(biāo) 創(chuàng)建隊(duì)列 Queue queue = session.createQueue(queueName); // 創(chuàng)建生產(chǎn)者 MessageProducer producer = session.createProducer(queue); // 生產(chǎn)者生產(chǎn)的消息 是放在這個(gè)queue里面的 producer.setDeliveryMode(DeliveryMode.PERSISTENT); //默認(rèn)非持久化的 設(shè)置持久化 for (int i = 1; i < 10; i++) { // 拿到隊(duì)列 創(chuàng)建消息 TextMessage textMessage = session.createTextMessage("消息內(nèi)容" + i); // 發(fā)送消息 producer.send(textMessage); } // 關(guān)閉連接 connection.close(); System.out.println("消息發(fā)送完畢"); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java使用單向鏈表解決數(shù)據(jù)存儲(chǔ)自定義排序問題
本文主要介紹了java使用單向鏈表解決數(shù)據(jù)存儲(chǔ)自定義排序問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03一文搞懂Java中對(duì)象池的實(shí)現(xiàn)
池化并不是什么新鮮的技術(shù),它更像一種軟件設(shè)計(jì)模式,主要功能是緩存一組已經(jīng)初始化的對(duì)象,以供隨時(shí)可以使用。本文將為大家詳細(xì)講講Java中對(duì)象池的實(shí)現(xiàn),需要的可以參考一下2022-07-07SpringBoot 中html的頁面間跳轉(zhuǎn)問題小結(jié)
這篇文章主要介紹了SpringBoot 中html的頁面間跳轉(zhuǎn)問題小結(jié),本文給大家分享兩種方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10IntelliJ IDEA將導(dǎo)入的項(xiàng)目轉(zhuǎn)成maven項(xiàng)目
這篇文章主要介紹了IntelliJ IDEA將導(dǎo)入的項(xiàng)目轉(zhuǎn)成maven項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09簡(jiǎn)單了解Spring循環(huán)依賴解決過程
這篇文章主要介紹了簡(jiǎn)單了解Spring循環(huán)依賴解決過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Java 替換字符串右側(cè)出現(xiàn)的第一個(gè)子串方式
這篇文章主要介紹了Java 替換字符串右側(cè)出現(xiàn)的第一個(gè)子串方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08mybatis-plus實(shí)現(xiàn)邏輯刪除的示例代碼
本文主要介紹了mybatis-plus實(shí)現(xiàn)邏輯刪除的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05圖解Spring Security 中用戶是如何實(shí)現(xiàn)登錄的
這篇文章主要介紹了圖解Spring Security 中用戶是如何實(shí)現(xiàn)登錄的,文中通過示例代碼和圖片介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07