ActiveMQ持久化機制代碼實例
這篇文章主要介紹了ActiveMQ持久化機制代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
用戶注冊成功后發(fā)短信提醒
同步http
異步mq
JMS中兩種通訊模式:
發(fā)布訂閱 一對多 topic 去過消費者集群的話 都會消費
消息隊列 點對點 queue 去過消費者集群的話 均攤消費
場景問題: 服務器斷電重啟,未被消費的消息是否會在重啟之后消費?
兩種模式:
1、非持久性,服務器斷電(關閉)之后,使用非持久性模型時,沒有被消費的消息不會繼續(xù)消費,全部丟失 。程序會報一個連接關閉異常,停止運行。繼續(xù)啟動服務器運行程序,不會接收任何消息。
2、持久性,服務器斷電(關閉)之后,使用持久性模型時,沒有被消費的消息會繼續(xù)消費,程序也會報連接關閉異常,但再次啟動服務器和程序后,接收方還能繼續(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); // 是否需要事務方式提交 消費方式默認自動簽收
// 拿到session 創(chuàng)建目標 創(chuàng)建隊列
Queue queue = session.createQueue(queueName);
// 創(chuàng)建生產者
MessageProducer producer = session.createProducer(queue); // 生產者生產的消息 是放在這個queue里面的
producer.setDeliveryMode(DeliveryMode.PERSISTENT); //默認非持久化的 設置持久化
for (int i = 1; i < 10; i++) {
// 拿到隊列 創(chuàng)建消息
TextMessage textMessage = session.createTextMessage("消息內容" + i);
// 發(fā)送消息
producer.send(textMessage);
}
// 關閉連接
connection.close();
System.out.println("消息發(fā)送完畢");
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
SpringBoot多環(huán)境打包與配置文件排除實踐記錄
本文介紹了SpringBoot項目多環(huán)境打包與配置文件排除實踐,包括多環(huán)境配置的實現(xiàn)方法、打包時排除配置文件的方法以及動態(tài)加載外部配置文件的最佳實踐,感興趣的朋友跟隨小編一起看看吧2024-11-11
"Method?Not?Allowed"405問題分析以及解決方法
項目中在提交表單時,提示“HTTP 405”錯誤——“Method Not Allowed”這里顯示的是,方法不被允許,下面這篇文章主要給大家介紹了關于"Method?Not?Allowed"405問題分析以及解決方法的相關資料,需要的朋友可以參考下2022-10-10
SpringBoot打印系統(tǒng)執(zhí)行的sql語句及日志配置指南
這篇文章主要給大家介紹了關于SpringBoot打印系統(tǒng)執(zhí)行的sql語句及日志配置的相關資料,在Java SpringBoot項目中如果使用了Mybatis框架,默認情況下執(zhí)行的所有SQL操作都不會打印日志,需要的朋友可以參考下2023-10-10
Springboot mybais配置多數(shù)據源過程解析
這篇文章主要介紹了Springboot+mybais配置多數(shù)據源過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03
SpringBoot采用AJAX實現(xiàn)異步發(fā)布帖子詳解
Ajax是一種web應用技術,可以借助客戶端腳本(javascript)與服務端應用進行異步通訊,獲取服務端數(shù)據以后,可以進行局部刷新,進而提高數(shù)據的響應和渲染速度。所有的Ajax請求都會基于DOM(HTML元素)事件,通過XHR(XMLHttpRequest)對象實現(xiàn)與服務端異步通訊局部更新2022-08-08

