J2EE技术(三)——JMS
JMS(Java Message Service)即java消息服務(wù),提供了一組標(biāo)準(zhǔn)的java API,用于企業(yè)級(jí)的消息處理。通過JMS可以在java程序之間發(fā)送和接受消息以達(dá)到交換數(shù)據(jù)的目的。
一個(gè)JMS應(yīng)用由以下幾部分組成:
1、?????? 消息發(fā)送者(消息生產(chǎn)者):消息發(fā)送者是指消息的創(chuàng)建者和發(fā)送者,是消息的發(fā)源地。
2、?????? JMS提供者:是指實(shí)現(xiàn)JMS API接口的消息系統(tǒng),是消息的中轉(zhuǎn)站。JMS定義了Java中訪問消息中間件的接口,但JMS只是接口,并沒有給予實(shí)現(xiàn),實(shí)現(xiàn)JMS接口的消息中間件稱為JMS提供者(JMS Provider)。WebLogic Server內(nèi)嵌了消息中間件的功能,所以WebLogic Server就充當(dāng)了JMS提供者的角色。
3、?????? 消息接受者(消息消費(fèi)者):消息接受者是指接受消息的應(yīng)用程序,是消息的最終的目的地。
4、?????? 管理對(duì)象:管理對(duì)象是預(yù)定義的JMS對(duì)象,客戶端使用這些預(yù)定義的對(duì)象進(jìn)行通信,例如JMS連接工廠。
二、JMS通信機(jī)制
1、點(diǎn)到點(diǎn)通信(PTP)模式
JMS把每一個(gè)消息傳遞給一個(gè)消息消費(fèi)者,并只有唯一的一個(gè),即一個(gè)消息生產(chǎn)者對(duì)應(yīng)一個(gè)消息消費(fèi)者。
2、發(fā)布/訂閱(Publish/Subscribe,Pub/Sub)模式
一個(gè)消息生產(chǎn)者對(duì)應(yīng)多個(gè)消息消費(fèi)者。
?
可以在一個(gè)應(yīng)用中同時(shí)使用這兩種消息傳遞方式。
三、JMS概念的一些簡(jiǎn)潔定義
連接工廠(ConnectionFactory):客戶端用來創(chuàng)建連接的管理對(duì)象。
連接(Connection):代表一個(gè)與JMS提供者的活動(dòng)連接。
目的(Destination):標(biāo)識(shí)消息的接收方式。分為隊(duì)列(Queue)和主題(Topic)兩種。
會(huì)話(Session):接收和發(fā)送消息的會(huì)話線程。
消息生產(chǎn)者(MessageProducer):會(huì)話使用它把消息發(fā)送到目的地。
消息消費(fèi)者(MessageConsumer):會(huì)話使用它從目的地接受消息生產(chǎn)者發(fā)送的消息。
四、JMS消息發(fā)送及接收的過程:
1、發(fā)送消息過程:
(1)、使用JNDI查詢管理對(duì)象ConnectionFactory和Destination。
(2)、使用管理對(duì)象ConnectionFactory建立連接Connection。
(3)、使用連接Connection建立會(huì)話Session。
(4)、使用會(huì)話Session和管理對(duì)象Destination創(chuàng)建消息生產(chǎn)者M(jìn)essageProducer。
(5)、使用消息生產(chǎn)者M(jìn)essageProducer發(fā)送消息。
2、接受消息的客戶端使用JMS的過程:
(1)、使用JNDI查詢管理對(duì)象ConnectionFactory和Destination。
(2)、使用管理對(duì)象ConnectionFactory建立連接Connection。
(3)、使用連接Connection建立會(huì)話Session。
(4)、使用會(huì)話Session和管理對(duì)象Destination創(chuàng)建消息消費(fèi)者M(jìn)essageConsumer。
(5)、使用消息消費(fèi)者M(jìn)essageConsumer接收消息。
五、JMS消息類型
(1)、StreamMessage:消息由串行化的Java對(duì)象組成,必須按照設(shè)置時(shí)的順序讀取對(duì)象。
(2)、MapMessage:消息由名稱/值對(duì)組成,其中名稱為字符串類型,值為Java數(shù)據(jù)類型。可以使用列舉順序讀取該消息的值,也可以通過名稱無序地獲取值。
(3)、TextMessage:消息的主體為字符串(),這是最常用的消息類型。
(4)、ObjectMessage:消息的主體為串行化的Java對(duì)象,可以是自己定義的串行化的Java對(duì)象。
(5)、BytesMessage:消息的主體是二進(jìn)制數(shù)據(jù)。
Weblogic.jms.extensions.XMLMessage 是WebLogic實(shí)現(xiàn)的JMS提供者提供的擴(kuò)展的消息類型,提供更便利的操縱XML內(nèi)容的方式。
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/CharmingDang/archive/2011/12/20/9663968.html
總結(jié)
以上是生活随笔為你收集整理的J2EE技术(三)——JMS的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Setup SQL Server 200
- 下一篇: 基于信息论的特征选择算法综述