activemq
很好的支援了訊息的永續性。
結合起來應該是很好的保證了訊息的可靠傳送。
訊息永續性的原理很簡單,就是在傳送者將訊息傳送出去後,訊息中心首先將訊息儲存到本地資料檔案、記憶體資料庫或者遠端資料庫等,然後試圖將訊息傳送給接收者,傳送成功則將訊息從儲存中刪除,失敗則繼續嘗試。訊息中心啟動以後首先要檢查制定的儲存位置,如果有未傳送成功的訊息,則需要把訊息傳送出去。
對此,我做了如下測試:
一、對queue
型別的持久化測試
環境: 1
、新建配置檔案activemq-persistence.xml
file:///$/conf/credentials.properties
2、測試類
publicclasspublisher ;
privatestring
username
= "publisher"
;privatestring
password
= "password";
publicpublisher()throwsjm***ception
publicvoidclose()throwsjm***ception
} publicstaticvoidmain(string args)throwsjm***ception
total
+= count
; system.
out.println(
"published '"
+ count
+ "' of '"
+ total
+ "' job messages"
);trycatch(interruptedexception x)
} publisher.close(); }
publicvoidsendmessage()throwsjm***ception
} string job =
jobs
[idx];
destination destination =
session
.createqueue(
"jobs."
+ job);
message message =
session
.createobjectmessage(
id++);
system.
out.println(
"sending: id: "
+ ((objectmessage)message).getobject() +
" on queue: "
+ destination);
producer
.send(destination, message);
producer
.setdeliverymode(deliverymode.
non_persistent
); } }
publicclassconsumer ;
publicconsumer()throwsjm***ception
publicvoidclose()throwsjm***ception
} publicstaticvoidmain(string args)throwsjm***ception }
publicsession getsession()
} 3、測試
ActiveMQ持久化儲存
size medium activemq的訊息可以儲存在不同的儲存中,預設是kahadb,leveldb,mysql,oracle size size large 1 配置資料庫連線 size c m apache activemq 5.14.1 confactivemq.xml新增資料庫連線資料。...
Activemq訊息持久化
官方文件 activemq持久化相關配置 usr local apache activemq 5.11.1 conf activemq.xml 官方預設的持久化為kahadb 可以稍作調優 indexwritebatchsize 1000 journalmaxfilelength 32mb enab...
ActiveMQ 訊息持久化
可持久化機制 兩種機制 用一句話簡單明瞭來說,就是將mq中的資料儲存乙份,資料被傳送,則將儲存的資料刪除,如果沒有傳送成功則重新傳送。先不說具體的實現,整體的思路是這樣的,如果mq是一台伺服器,我們最好做到物理上的備份,這樣在機器出問題的時候,我們能夠恢復資料。一般將資料儲存到第三方雲上。或者說另外...