activeMQ技術分享

本次引入ActiveMQ的背景:

ActiveMQ主要解決什麼問題:

       在項目中,將一些無需即時返回且耗時的操作提取出來,進行了異步處理,而這種異步處理的方式大大的節省了服務器的請求響應時間,從而提高了系統的吞吐量。比如記錄用戶的操作日誌。這部分就能提出來。操作日誌,這種東西,用戶也不會馬上去看他,爲何不用更好的技術,ActiveMQ呢,這樣做還節省了服務器請求響應時間。

一、什麼是activemq:

ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線;速度快,支持多種語言和協議。

ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規範的 JMS Provider實現。

JMS:Java消息服務Java Message Service)應用程序接口,是一個Java平臺中關於面向消息中間件(MOM)的API,用於在兩個應用程序之間,或分佈式系統中發送消息,進行異步通信。

二、ActiveMQ的特點和優勢:

       優點:

             (1)activemq可以很好的運行在任何JVM上,而不只是集成到tomcat(jboss等都行)的應用服務器中;比如jbossmq就只支持jboss。

             (2)activemq支持大量的跨語言客戶端(Java,C,C++,C#,Ruby,Perl,Python,PHP

             (3)activemq支持許多不同的協議(Ajax/REST/Stomp/OpenWire/XMPP)

             (4)activemq支持許多高級功能,例如MessageGroups,ExclusiveConsumer,CompositeDestinations(同一個消息一次發送到多個消息隊列)。

             (5)AdvisoryMessage:實現了ActiveMQ的broker上各種操作的記錄跟蹤和通知。

             (6)activemq支持可靠連接並且具有可配置的自動重連接

             (7)activemq對spring有很好的支持.(文檔也比較全面)

             (8)activemq是速度非常快;一般要比jbossmq快10倍

  缺點:

             (1)傳輸文件不方便,而且效率相對來說不是很高,使用起來也不方便,封裝代價高。當然這個缺點對於一個消息總線來說此功能不算最主要的,還在忍受範圍內。

             (2)丟消息、但曝光率高、文檔全。

三、ActiveMQ支持的數據格式:

JMS規範中的消息類型包括TextMessage、MapMessage、ObjectMessage、BytesMessage、和StreamMessage等五種。

四、ActiveMQ的應用場景

http://blog.csdn.NET/dly1580854879/article/details/68486367

五、ActiveMQ在開發中的使用以及遇到問題的解決:

      1.先來一個demo,感受一下消息的發送與接收的過程:http://blog.csdn.net/dly1580854879/article/details/68488003

問題:

      1.   消息發送失敗了怎麼辦?

            ------重發機制http://blog.csdn.net/dly1580854879/article/details/68489798

      2.   消息消費失敗了怎麼辦?

            ------二次消費,就是捕捉異常,把消息獲取過來,重新入隊,再消費。

      3.   我怎麼樣知道消息已經發送成功了?

            ------消息確認http://blog.csdn.net/dly1580854879/article/details/68490197

      4.   同一消息消費多次失敗了,怎麼辦?

            ----進入死信隊列、或者重新消費http://blog.csdn.net/dly1580854879/article/details/68946717

      5.   我現在有兩個業務的消息,發送到同一個queue,怎麼識別出來他們是不同的消息?

           ------給消息做標記

      6.  消息多次消費任然失敗,死信隊列裏面沒有東西,什麼原因造成的?怎麼解決?

            ------沒有設置事務、事務回滾操作,這才使得消息消費失敗後,直接丟棄。

                 設置事務就能解決此問題。

      7.  怎麼樣設置事務?

            ----設置事務http://blog.csdn.net/dly1580854879/article/details/68945997

      8.  多個消費者怎麼設置?---設置多個消費者

      <!--ActiveMQ:設置多個並行的消費者 -->

      <property name="concurrency"value="2-3" />

六、activeMQ的兩種通訊方式:

         publish-subscribe、p2p


原文地址:http://blog.csdn.net/dly1580854879/article/details/70917909
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章