本文原創,轉載請說明出處!
Apache-ActiveMQ:是Apache提供的一款開源的消息傳送服務,不論是安裝還是使用都非常簡單實用,可以作為消息緩存管理器來使用(個人觀點),看看ActiveMQ提供了什麼。
ActiveMQ提供兩種消息傳遞方式:Queues(隊列)和Topics(主題)。
這兩者的區別主要體現在獲取消息端,Queues方式下消息只能被獲取一次,也就是說多個消息獲取端不會獲得重復的信息。
Topics方式相當於訂閱,所有消息獲取端都可以獲得相同的消息。
相比之下,Queues更適合做負載均衡,讓多個消息獲取端處理一組消息;Topic適合作為消息分發或者消息多用途時使用。
ActiveMQ傳遞消息的種類包括:BytesMessage、ObjectMessage、TextMessage、XmlMessage,還有些不常用的MapMessagee、StreamMessage等。
接下來看具體的用法。
Apache-ActiveMQ的安裝和配置還是比較簡單的,先到官網下載Apache-ActiveMQ,本文使用的版本是5.5.1,據說比較穩定。
另外到這裡下載兩個bin包,裡面有對應的DLL,稍後會在項目中用到。
下載好以後,如果沒有安裝過java SDK,把這個也安裝一下,否則無法運行。配置環境變量可以參考Windows7 下環境變量設置
以上步驟完成後,在目錄\apache-activemq-5.5.1-bin\apache-activemq-5.5.1\bin下雙擊activemq.bat啟動服務。
Apache-ActiveMQ默認有一個監控網站頁面http://127.0.0.1:8161/admin/,可以查看當前Apache-ActiveMQ的各項參數。
如何配置Apache-ActiveMQ可以參考官方文檔,Apache-ActiveMQ提供了豐富的配置,包括分發策略、數據恢復策略、負載均衡、持久化策略。
大家有興趣可以Google一下,很多寫配置的文檔,本篇博客重點不在配置,就不贅述了。
Apache-ActiveMQ把消息傳遞的過程分為2個部分,提供消息稱為Producer(可以理解為制作消息方),接收消息稱為Consumer(消息消費方)。
Producter向Apache-ActiveMQ Topic(Queue)中添加消息,Consumer從Apache-ActiveMQ Topic(Queue)取出消息,看到其他人大多寫TextMessage,此次示例是用XMLMessage作為消息對象,希望可以給需要用XML傳遞消息的讀者提供一些幫助,下面用代碼示例說明。
新建一個Producer用來發送消息:
Producer代碼分析:
發送消息很簡單,接下來是接受消息的代碼:
Consumer代碼分析:
此時我們就可以運行一下我們的示例程序,要記得先運行Apache-ActiveMQ服務程序
以下是運行截圖:
Apache-ActiveMQ個人認為是一個很好的工具,用以定時處理一些消息提供支持,也解決了消息發送與消息處理速度不同的問題。
歡迎各位提出寶貴的意見和建議,如有問題可以加我的QQ:54474314討論