壹。作為文件的持久性
默認情況下,ActiveMQ支持這種方法,只要您在發送消息時將消息設置為持久的。
打開安裝目錄中的配置文件:
d:\ ActiveMQ \ Apache-ActiveMQ \ conf \ ActiveMQ . XML在80行後找到默認配置項:
& lt持久性適配器& gt
& ltkah ADB directory =“$ { ActiveMQ . data }/kah ADB“/& gt。
& lt/persistence adapter & gt;
請註意,這裏使用的是kahaDB,它是壹種基於文件的消息內存,支持事務,並且是壹種可靠、高性能和可擴展的消息內存。
他的初衷是簡單快捷地使用它。KahaDB的索引使用事務日誌,所有目的地只使用壹個索引。壹些測試表明,如果將其用於生產環境,它支持10000個活動連接,並且每個連接都有壹個獨立的隊列。這樣的性能足以滿足大部分需求。
然後將第二個參數更改為:
MsgDeliveryMode。堅持的
有兩種方法可以保存消息。
持久:保存到磁盤,在消費者消費後,消息被刪除。
NON_PERSISTENT:保存到內存中,消息在消費後將被清除。
註意:堆積過多的消息可能會導致內存溢出。
然後打開生成器並發送壹條消息:
wps30F4.tmp
不啟動消費端,同時在管理界面中查看:
wps3105.tmp
我發現有壹條信息在等待。此時,如果沒有持久性,則在ActiveMQ關閉後重新啟動此消息將丟失,但現在我們將其修改為文件持久性,消費者在重新啟動ActiveMQ後仍然可以收到此消息。
wps3106.tmp