HornetQ異步消息系統介紹

一.介紹

HornetQ(官網:http://www.jboss.org/hornetq)是一個支持集羣和多種協議,可嵌入、高性能的異步消息系統。HornetQ完全支持JMS,HornetQ不但支持JMS1.1 API同時也定義屬於自己的消息API,這可以最大限度的提升HornetQ的性能和靈活性。hornetq一直在更新,將會支持更多的協議。現在2.2.14爲最新的穩定版本。

項目中使用了HornetQ的一個原因,是其高性能,且完全支持JMS接口(如果有一天項目需要,使用其它的消息系統工具,只要按照對應的JMS接口再實現即可),定義了自己的消息API,相關接口使用更方便。(項目中按照ActiveMQ也實現了一套,可切換,不過維護起來比較麻煩。)

(另外此在InfoQ中一篇與MectiveMQ性能比較,較早的一篇報道:http://www.infoq.com/cn/news/2010/02/hornetq2-vs-activemq5.3)


二.部署
1.下載地址:(http://downloads.jboss.org/hornetq/hornetq-2.2.14.Final.zip)
2.對於配製文件與運行地址需要注意地方:
在對應的config目錄下,有對應的配製文件,供參考,一般自己私有項目,新建一個目錄new,然後把對應的配製文件拷貝到new目錄進行配製即可。以對應的config\stand-alone\non-clustered 目錄爲例,使用非集羣配製,主要修改的配製文件爲hornetq-configuration.xml
對應的topic事件配製:
<address-settings>
      <!--default for catch all-->
      <address-setting match="#">
         <dead-letter-address>jms.queue.DLQ</dead-letter-address>
         <expiry-address>jms.queue.ExpiryQueue</expiry-address>
         <redelivery-delay>0</redelivery-delay>
         <max-size-bytes>10485760</max-size-bytes>       
         <message-counter-history-day-limit>10</message-counter-history-day-limit>
         <address-full-policy>BLOCK</address-full-policy>
      </address-setting>
   </address-settings>
可以跟據需求,定義topic對應的name,然後修改match屬性。

對應的消息隊列配製:
 <queues>     
        <queue name="xxx">
            <address>xxx</address>
            <durable>true</durable>
        </queue>
   </queues>
也即跟據需求定義對應的name,address.

定義完以後,修改對應的bin目錄下的run.sh文件。值得注意是修改對應的目錄結構,定義好對應的進程pid,log目錄,指定對應的啓動時jvm參數-Xmx,-Xms內存(指定如果超過系統最大內存,會啓動不成功)

啓動過,查看對應的log目錄,可觀察是否啓動成功。

另外還可以配製集羣,主從,正常來說hornetq單機性能已經非常優秀,一定應用定義主從即可。對於集羣,可跟據實現情況使用。


Hornetq相關文檔也是比較詳細,具體使用時可參考(http://www.jboss.org/hornetq/docs)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章