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

