一文讀懂什麼是JMS規範

一、JMS是什麼

java消息服務(java message service即JMS)應用程序接口是一個java平臺中關於面向消息中間件(MOM)的API,用於在兩個應用程序之間,或分佈式系統中發送消息,進行異步通信。java消息服務是一個與具體平臺無關的API。

對應的API接口就在javax.jms包下面:

二、JMS的對象模型

 

ConnectionFactory 連接工廠
Connection 連接
Session 會話
Destination 目的
MessageProducer 生產者
MessageConsumer 消費者
Message 消息
Broker 消息中間件的實例

也就是說,當我們去實現JMS規範的具體實現時,需要考慮上述因素,去將這些模型都有對應的實現。

三、JMS 的消息模型

  • Point-to-Point(P2P)/點對點:也就是一條消息發送給一個消費者去消費,點對點模式一般是和Queue使用,也就是消息發送到Queue中,消費者從Queue中消費消息。

  • Publish/Subscribe(Pub/Sub)/主題(發佈訂閱):發佈訂閱模式一般適合Topic關聯,一個生產向topic中發送消息,只要訂閱了這個topic的消息者,都可以接收到這條數據。

四、JMS的消息結構

jms的消息結構只要包括三個方面:消息頭、消息屬性、消息體。

  • 消息頭:關於一些消息的描述信息

JMSDestination

消息的目的地,Topic或者Queue

JMSDeliveryMode

消息的發送模式

JMSTimestamp

消息傳遞給Broker的時間戳,它不是實際發送的時間

JMSExpiration

消息的有效期,在有效期內,消息消費者纔可以消費這個消息

JMSPriority

消息的優先級。0-4爲正常的優先級,5-9爲高優先級

JMSMessageID

一個字符串用來唯一標示一個消息

JMSReplyTo

有時消息生產者希望消費者回復一個消息,JMSReplyTo爲一個Destination,表示需要回復的目的地

JMSCorrelationID

通常用來關聯多個Message

JMSType

表示消息體的結構,和JMS提供者有關

JMSRedelivered

如果這個值爲true,表示消息是被重新發送了

  • 消息屬性:可以理解爲消息的附加信息頭,屬性名可以自定義。
  • 消息體類型 :發送消息的消息格式,有一下5中類型

BytesMessage

用來傳遞字節消息

MapMessage

用來傳遞鍵值對消息

ObjectMessage

用來傳遞序列化對象

StreamMessage

用來傳遞文件等

TextMessage

用來傳遞字符串

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章