日本国产欧美大码A视频 _国产高颜值极品在线视频_色偷偷亚洲第一综合网_国产精品一二三社区视频_久久久青草视频

IT培訓(xùn)-高端面授IT培訓(xùn)機(jī)構(gòu)
云和教育:云和數(shù)據(jù)集團(tuán)高端IT職業(yè)教育品牌
  • 國家級
    全民數(shù)字素養(yǎng)與技能培訓(xùn)基地
  • 河南省
    第一批產(chǎn)教融合型企業(yè)建設(shè)培育單位
  • 鄭州市
    數(shù)字技能人才(碼農(nóng))培養(yǎng)評價(jià)聯(lián)盟
當(dāng)前位置:
首頁新聞資訊IT資訊正文

Java:消息中間件之a(chǎn)ctiveMQ詳解

  • 發(fā)布時(shí)間:
    2020-08-05
  • 版權(quán)所有:
    云和教育
  • 分享:

Activemq是什么?ActiveMQ 是Apache出品,最流行的,能力強(qiáng)勁的開源消息總線。ActiveMQ 是一個(gè)完全支持JMS1.1和J2EE 1.4規(guī)范的 JMS Provider實(shí)現(xiàn),盡管JMS規(guī)范出臺已經(jīng)是很久的事情了,但是JMS在當(dāng)今的J2EE應(yīng)用中間仍然扮演著特殊的地位。

主要特點(diǎn):

  • 1、多種語言和協(xié)議編寫客戶端。語言: Java, C, C++, C#, Ruby, Perl, Python, PHP。應(yīng)用協(xié)議: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
  • 2、完全支持JMS1.1和J2EE 1.4規(guī)范 (持久化,XA消息,事務(wù))
  • 3、對Spring的支持,ActiveMQ可以很容易內(nèi)嵌到使用Spring的系統(tǒng)里面去,而且也支持Spring2.0的特性
  • 4、通過了常見J2EE服務(wù)器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的測試,其中通過JCA 1.5 resource adaptors的配置,可以讓ActiveMQ可以自動的部署到任何兼容J2EE 1.4 商業(yè)服務(wù)器上
  • 5、支持多種傳送協(xié)議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
  • 6、支持通過JDBC和journal提供高速的消息持久化
  • 7、從設(shè)計(jì)上保證了高性能的集群,客戶端-服務(wù)器,點(diǎn)對點(diǎn)
  • 8、支持Ajax
  • 9、支持與Axis的整合
  • 10、可以很容易得調(diào)用內(nèi)嵌JMS provider,進(jìn)行測試

 

ActiveMQ消息傳遞的兩種類型:

一種是點(diǎn)對點(diǎn)的,即一個(gè)生產(chǎn)者和一個(gè)消費(fèi)者一一對應(yīng);

另一種是發(fā)布/訂閱模式,即一個(gè)生產(chǎn)者產(chǎn)生消息并進(jìn)行發(fā)送后,可以由多個(gè)消費(fèi)者進(jìn)行接收。

JMS定義了五種不同的消息正文格式,以及調(diào)用的消息類型,允許你發(fā)送并接收以一些不同形式的數(shù)據(jù),提供現(xiàn)有消息格式的一些級別的兼容性。

  •   1、 StreamMessage — Java原始值的數(shù)據(jù)流
  •   2、 MapMessage–一套名稱-值對
  •   3、TextMessage–一個(gè)字符串對象
  •   4、ObjectMessage–一個(gè)序列化的 Java對象
  •   5、 BytesMessage–一個(gè)字節(jié)的數(shù)據(jù)流

    ActiveMQ的使用方法

    點(diǎn)對點(diǎn):

發(fā)布/訂閱:

在點(diǎn)對點(diǎn)或隊(duì)列模型下,一個(gè)生產(chǎn)者向一個(gè)特定的隊(duì)列發(fā)布消息,一個(gè)消費(fèi)者從該隊(duì)列中讀取消息。這里,生產(chǎn)者知道消費(fèi)者的隊(duì)列,并直接將消息發(fā)送到消費(fèi)者的隊(duì)列。這種模式被概括為:只有一個(gè)消費(fèi)者將獲得消息。生產(chǎn)者不需要在接收者消費(fèi)該消息期間處于運(yùn)行狀態(tài),接收者也同樣不需要在消息發(fā)送時(shí)處于運(yùn)行狀態(tài)。每一個(gè)成功處理的消息都由接收者簽收。

發(fā)布者/訂閱者模型支持向一個(gè)特定的消息主題發(fā)布消息。0或多個(gè)訂閱者可能對接收來自特定消息主題的消息感興趣。在這種模型下,發(fā)布者和訂閱者彼此不知道對方。這種模式好比是匿名公告板。這種模式被概括為:多個(gè)消費(fèi)者可以獲得消息.在發(fā)布者和訂閱者之間存在時(shí)間依賴性。發(fā)布者需要建立一個(gè)訂閱(subscription),以便客戶能夠購訂閱。訂閱者必須保持持續(xù)的活動狀態(tài)以接收消息,除非訂閱者建立了持久的訂閱。在那種情況下,在訂閱者未連接時(shí)發(fā)布的消息將在訂閱者重新連接時(shí)重新發(fā)布。

 

使用其他的工程來學(xué)習(xí):

工程需要添加jar包:

Queue?Producer

生產(chǎn)者:生產(chǎn)消息,發(fā)送端。

第一步:創(chuàng)建ConnectionFactory對象,需要指定服務(wù)端ip及端口號。

第二步:使用ConnectionFactory對象創(chuàng)建一個(gè)Connection對象。

第三步:開啟連接,調(diào)用Connection對象的start方法。

第四步:使用Connection對象創(chuàng)建一個(gè)Session對象。

第五步:使用Session對象創(chuàng)建一個(gè)Destination對象(topic、queue),此處創(chuàng)建一個(gè)Queue對象。

第六步:使用Session對象創(chuàng)建一個(gè)Producer對象。

第七步:創(chuàng)建一個(gè)Message對象,創(chuàng)建一個(gè)TextMessage對象。

第八步:使用Producer對象發(fā)送消息。

第九步:關(guān)閉資源。

Consumer

消費(fèi)者:接收消息。

第一步:創(chuàng)建一個(gè)ConnectionFactory對象。

第二步:從ConnectionFactory對象中獲得一個(gè)Connection對象。

第三步:開啟連接。調(diào)用Connection對象的start方法。

第四步:使用Connection對象創(chuàng)建一個(gè)Session對象。

第五步:使用Session對象創(chuàng)建一個(gè)Destination對象。和發(fā)送端保持一致queue,并且隊(duì)列的名稱一致。

第六步:使用Session對象創(chuàng)建一個(gè)Consumer對象。

第七步:接收消息。

第八步:打印消息。

第九步:關(guān)閉資源

文/云和數(shù)據(jù)JAVA技術(shù)專家

2020年,云和數(shù)據(jù)全面升級課程,設(shè)有HTML5全棧精英班、全域電商精英班、PHP全棧web高薪班、Unity虛擬現(xiàn)實(shí)大師班、UI視覺交互精英班、Java大數(shù)據(jù)精英班、大數(shù)據(jù)人工智能專家班、華為認(rèn)證課程……在云和,你可以學(xué)習(xí)一門自己感興趣的技術(shù)作為踏入IT行業(yè)的敲門磚!要知道,興趣和欲望才是驅(qū)動一個(gè)人學(xué)習(xí)和進(jìn)步的原動力。努力,是你走向成功的唯一捷徑。