一、消息的存儲(chǔ)方式
ActiveMQ支持JMS規(guī)范中的持久化消息與非持久化消息
持久化消息通常用于不管是否消費(fèi)者在線,它們都會(huì)保證消息會(huì)被消費(fèi)者消費(fèi)。當(dāng)消息被確認(rèn)消費(fèi)后,會(huì)從存儲(chǔ)中刪除
非持久化消息通常用于發(fā)送通知以及實(shí)時(shí)數(shù)據(jù),通常要求性能優(yōu)先,消息可靠性并不是必須的情況
MQ支持可插拔式的消息存儲(chǔ),如:內(nèi)存、文件和關(guān)系數(shù)據(jù)庫(kù)等方式
Queue消息模型在ActiveMQ的存儲(chǔ)
采用存儲(chǔ)采用先進(jìn)先出(FIFO),一個(gè)消息只能被一個(gè)消費(fèi)者消費(fèi),當(dāng)消息被確認(rèn)消費(fèi)之后才會(huì)被刪除。
Topic消息模型(針對(duì)持久訂閱)
每個(gè)訂閱者獲取的消息實(shí)際是消息的一個(gè)副本,只有一個(gè)消息副本會(huì)被存儲(chǔ),MQ提供了一個(gè)指針來(lái)指向消息存儲(chǔ)并且分發(fā)消息副本到訂閱者,消息直到所有的持久化訂閱者都被接收才能被刪除。
持久化存儲(chǔ)方式:
KahaDB消息存儲(chǔ)
AMQ消息存儲(chǔ)
JDBC消息存儲(chǔ)
內(nèi)存消息存儲(chǔ)
二、KahaDB存儲(chǔ)方式
KahaDB是從ActiveMQ 5.4開(kāi)始默認(rèn)的持久化插件。KahaDb恢復(fù)時(shí)間遠(yuǎn)遠(yuǎn)小于其前身AMQ并且使用更少的數(shù)據(jù)文件,所以可以完全代替AMQ,kahaDB的持久化機(jī)制同樣是基于日志文件,索引和緩存。
(一)、KahaDB主要特性:
日志形式存儲(chǔ)消息;
消息索引以B-Tree結(jié)構(gòu)存儲(chǔ),可以快速更新;
完全支持JMS事務(wù);
支持多種恢復(fù)機(jī)制;
(二)、適用場(chǎng)景:
高吞吐量的應(yīng)用程序
存儲(chǔ)大數(shù)據(jù)量的消息
(三)、配置方式 conf/activemq.xml:
網(wǎng)友評(píng)論