JMS及ActiveMQ介紹與部署應(yīng)用課件_第1頁
JMS及ActiveMQ介紹與部署應(yīng)用課件_第2頁
JMS及ActiveMQ介紹與部署應(yīng)用課件_第3頁
JMS及ActiveMQ介紹與部署應(yīng)用課件_第4頁
JMS及ActiveMQ介紹與部署應(yīng)用課件_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、作者:王磊2016/3/30JMS及ActiveMQ介紹與部署應(yīng)用文檔結(jié)構(gòu)文檔結(jié)構(gòu) JMS簡單介紹 ActiveMQ介紹 ActiveMQ安裝與部署 ActiveMQ開發(fā)DEMO 結(jié)束語JMS及ActiveMQ介紹與部署應(yīng)用JMS定義定義JMSJMS英文全稱為英文全稱為Java Message Service,Java Message Service,翻譯為翻譯為JavaJava消息消息服務(wù)。服務(wù)。是一個(gè)是一個(gè)JavaJava平臺(tái)中關(guān)于面向平臺(tái)中關(guān)于面向消息中間件消息中間件(MOMMOM)的)的APIAPI,用于在兩個(gè)應(yīng)用程序之間,或分布式系,用于在兩個(gè)應(yīng)用程序之間,或分布式系統(tǒng)中發(fā)送消息,進(jìn)

2、行統(tǒng)中發(fā)送消息,進(jìn)行異步異步通信通信。隨著技術(shù)的發(fā)展,隨著技術(shù)的發(fā)展,JMSJMS實(shí)現(xiàn)廠商已經(jīng)逐步支持各種實(shí)現(xiàn)廠商已經(jīng)逐步支持各種類型語言的客戶端訪問消息服務(wù),使類型語言的客戶端訪問消息服務(wù),使JMSJMS具有更廣闊的具有更廣闊的應(yīng)用前景。應(yīng)用前景。JMS及ActiveMQ介紹與部署應(yīng)用JMS特點(diǎn)特點(diǎn) 跨語言、跨平臺(tái)、跨應(yīng)用 高性能(每秒數(shù)據(jù)吞吐量GB級(jí)) 實(shí)時(shí)性好(發(fā)送消息的速度快) 異步(解耦,高可靠性) 支持集群(部分廠商實(shí)現(xiàn),master-slaver、broker cluster等模式)JMS及ActiveMQ介紹與部署應(yīng)用JMS應(yīng)用典型場景應(yīng)用典型場景 消耗時(shí)間和資源較多的請(qǐng)求,比

3、如電商網(wǎng)站的下單請(qǐng)求,使用JMS消息隊(duì)列,異步處理訂單。 異構(gòu)平臺(tái)之間通訊,比如C#與j2ee應(yīng)用間的通訊。 多應(yīng)用系統(tǒng)間的集成、數(shù)據(jù)傳遞,比如電網(wǎng)運(yùn)行系統(tǒng)中各應(yīng)用間數(shù)據(jù)傳遞。JMS及ActiveMQ介紹與部署應(yīng)用JMS體系架構(gòu)體系架構(gòu) 提供者:連接面向消息中間件的,JMS接口的一個(gè)實(shí)現(xiàn)。 客戶:生產(chǎn)或消費(fèi)基于消息的Java的應(yīng)用程序或?qū)ο蟆?生產(chǎn)者:創(chuàng)建并發(fā)送消息的JMS客戶。 消費(fèi)者:接收消息的JMS客戶。 消息:包括可以在JMS客戶之間傳遞的數(shù)據(jù)的對(duì)象。 隊(duì)列:一個(gè)容納那些被發(fā)送的等待閱讀的消息的區(qū)域。 主題:一種支持發(fā)送消息給多個(gè)訂閱者的機(jī)制。JMS及ActiveMQ介紹與部署應(yīng)用JM

4、S對(duì)象模型對(duì)象模型 連接工廠(Connection Factory) 連接(Connection) 會(huì)話(Session) 目的(Destination:Queue、Topic) 生產(chǎn)者(Message Producer) 消費(fèi)者(Message Consumer)JMS及ActiveMQ介紹與部署應(yīng)用JMS消息模型消息模型 點(diǎn)對(duì)點(diǎn)(Point-to-Point)。在點(diǎn)對(duì)點(diǎn)的消息系統(tǒng)中,消息分發(fā)給一個(gè)單獨(dú)的使用者。點(diǎn)對(duì)點(diǎn)消息往往與隊(duì)列(javax.jms.Queue)相關(guān)聯(lián)。 發(fā)布/訂閱(Publish/Subscribe)。發(fā)布/訂閱消息系統(tǒng)支持一個(gè)事件驅(qū)動(dòng)模型,消息生產(chǎn)者和消費(fèi)者都參與消息

5、的傳遞。生產(chǎn)者發(fā)布事件,而使用者訂閱感興趣的事件,并使用事件。該類型消息一般與特定的主題(javax.jms.Topic)關(guān)聯(lián)。JMS及ActiveMQ介紹與部署應(yīng)用JMS消息存儲(chǔ)方式消息存儲(chǔ)方式 NON_PERSISTENT:禁止固化消息,僅將消息放到內(nèi)存中,適合消息量較少、可靠性要求不高的系統(tǒng)。 PERSISTENT:固化消息,將消息以文件或者數(shù)據(jù)庫的方式進(jìn)行固化,可有效提高可靠性,但會(huì)降低性能。JMS及ActiveMQ介紹與部署應(yīng)用JMS消息格式消息格式 StreamMessage:Java原始值的數(shù)據(jù)流 MapMessage:鍵-值對(duì) TextMessage:字符串對(duì)象(最常用) Ob

6、jectMessage:序列化的 Java對(duì)象 BytesMessage:字節(jié)流JMS及ActiveMQ介紹與部署應(yīng)用JMS消息實(shí)體消息實(shí)體 消息頭(必須):包含用于識(shí)別和為消息尋找路由的操作設(shè)置。 消息屬性(可選):包含額外的屬性,支持其他提供者和用戶的兼容。 消息體(可選):消息具體內(nèi)容。JMS及ActiveMQ介紹與部署應(yīng)用JMS提供提供者實(shí)現(xiàn)者實(shí)現(xiàn) ActiveMQ:apache出品,開源,目前最流行,不支持超大規(guī)模。 RabbitMQ:mozilla出品,開源,不支持事務(wù),erlang語言開發(fā)。 RocketMQ:阿里巴巴出品,部分開源,該公司內(nèi)部大量使用,集群50臺(tái),日消息量百億級(jí)

7、。 SonicMQ:progress出品,商業(yè),部分國內(nèi)網(wǎng)站使用。 ZeroMQ:C語言開發(fā),效率極高,但不成熟,開源。JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ定義定義 MQ即Message Queue。Apache出品,最流行的,能力強(qiáng)勁的開源消息總線,是一個(gè)完全支持JMS1.1和J2EE 1.4規(guī)范的 JMS Provider實(shí)現(xiàn) 已經(jīng)在很多公司得到應(yīng)用,社區(qū)成熟,學(xué)習(xí)文檔多。JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ特性特性 支持多語言和多協(xié)議 完全支持持久化、事務(wù) 支持內(nèi)嵌至Spring 支持部署至JBoss、WebLogic等服務(wù)器上 支持集群 友好管理界面

8、,測試方便JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ下載與安裝下載與安裝1、到官網(wǎng)下載對(duì)應(yīng)操作系統(tǒng)的壓縮包JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ下載與安裝下載與安裝2、將壓縮包解壓。Windows使用好壓、360壓縮、winrar等軟件;Linux使用tar、unzip等指令JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ下載與安裝下載與安裝3、運(yùn)行主目錄下bin/activemq.bat(windows),bin/activemq(linux)來啟動(dòng)服務(wù)。JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ部署部署Linux下注冊(cè)服務(wù)并使其開機(jī)啟動(dòng):1、在

9、activemq腳本中增加下圖中白底兩行注釋2、ln -snf ./bin/activemq /etc/init.d/activemq3、chkconfig -add activemq4、chkconfig activemq onJMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO配置服務(wù)端鏈接類型、ip、端口,修改./conf/activemq.xml文件中的transportConnectors節(jié)點(diǎn):支持tcp,udp,nio,ssl,http,https,vm等多種協(xié)議。統(tǒng)一語法:JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO 配置鏈接用戶名密碼

10、,為./conf/activemq.xml文件中節(jié)點(diǎn)增加如下節(jié)點(diǎn):JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO 配置服務(wù)端管理員密碼,修改./conf/perties文件: 將權(quán)限檢查設(shè)為true,修改./conf/jetty.xml文件中的如下節(jié)點(diǎn):JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO輸入網(wǎng)址彈出輸入框,輸入剛才配置文件中admin的密碼進(jìn)行登錄:登錄成功頁面如下:JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO 客戶端編程通用步驟:JMS及ActiveMQ介紹與部署應(yīng)用Activ

11、eMQ開發(fā)開發(fā)DEMO 客戶端配置maven依賴:JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO客戶端整合進(jìn)Spring,引入schema:創(chuàng)建ConnectionFactory或者PooledConnectionFactory(線程安全):創(chuàng)建Connection(線程安全):JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO 創(chuàng)建消息發(fā)送者模板(線程安全,競爭session): pubSubDomain屬性改為true即為topic類型消息JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO將模板注入:在代碼中執(zhí)行發(fā)送:可發(fā)送任

12、意類型的消息,推薦發(fā)送Text類型。上面代碼中的”LoanUpdate”即為消息目的地標(biāo)識(shí),擁有同樣標(biāo)識(shí)的消息接收客戶端可以接收該消息。JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO配置消息接收監(jiān)聽(異步方式):執(zhí)行監(jiān)聽的類(實(shí)現(xiàn)MessageListener接口):JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO 服務(wù)端最小maven依賴 如果需要數(shù)據(jù)庫固化,需要引入activemq-kahadb-store等拓展包JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO 將服務(wù)內(nèi)嵌至Spring,隨jvm啟動(dòng)JMS及ActiveMQ介紹與部署應(yīng)用ActiveMQ開發(fā)開發(fā)DEMO內(nèi)嵌認(rèn)證配置JMS及A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論