Activemq是什么?ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線。ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規范的 JMS Provider實現,盡管JMS規范出臺已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演著特殊的地位。
主要特點:
ActiveMQ消息傳遞的兩種類型:
一種是點對點的,即一個生產者和一個消費者一一對應;
另一種是發布/訂閱模式,即一個生產者產生消息并進行發送后,可以由多個消費者進行接收。
JMS定義了五種不同的消息正文格式,以及調用的消息類型,允許你發送并接收以一些不同形式的數據,提供現有消息格式的一些級別的兼容性。
點對點:
發布/訂閱:
在點對點或隊列模型下,一個生產者向一個特定的隊列發布消息,一個消費者從該隊列中讀取消息。這里,生產者知道消費者的隊列,并直接將消息發送到消費者的隊列。這種模式被概括為:只有一個消費者將獲得消息。生產者不需要在接收者消費該消息期間處于運行狀態,接收者也同樣不需要在消息發送時處于運行狀態。每一個成功處理的消息都由接收者簽收。
發布者/訂閱者模型支持向一個特定的消息主題發布消息。0或多個訂閱者可能對接收來自特定消息主題的消息感興趣。在這種模型下,發布者和訂閱者彼此不知道對方。這種模式好比是匿名公告板。這種模式被概括為:多個消費者可以獲得消息.在發布者和訂閱者之間存在時間依賴性。發布者需要建立一個訂閱(subscription),以便客戶能夠購訂閱。訂閱者必須保持持續的活動狀態以接收消息,除非訂閱者建立了持久的訂閱。在那種情況下,在訂閱者未連接時發布的消息將在訂閱者重新連接時重新發布。
使用其他的工程來學習:
工程需要添加jar包:
生產者:生產消息,發送端。
第一步:創建ConnectionFactory對象,需要指定服務端ip及端口號。
第二步:使用ConnectionFactory對象創建一個Connection對象。
第三步:開啟連接,調用Connection對象的start方法。
第四步:使用Connection對象創建一個Session對象。
第五步:使用Session對象創建一個Destination對象(topic、queue),此處創建一個Queue對象。
第六步:使用Session對象創建一個Producer對象。
第七步:創建一個Message對象,創建一個TextMessage對象。
第八步:使用Producer對象發送消息。
第九步:關閉資源。
消費者:接收消息。
第一步:創建一個ConnectionFactory對象。
第二步:從ConnectionFactory對象中獲得一個Connection對象。
第三步:開啟連接。調用Connection對象的start方法。
第四步:使用Connection對象創建一個Session對象。
第五步:使用Session對象創建一個Destination對象。和發送端保持一致queue,并且隊列的名稱一致。
第六步:使用Session對象創建一個Consumer對象。
第七步:接收消息。
第八步:打印消息。
第九步:關閉資源
文/云和數據JAVA技術專家