JMS:
? ? ? ? ? ? Java消息服務(wù)(Java Message Service)應(yīng)用程序接口,是JavaEE平臺中關(guān)于面向消息中間件(MOM)的API,用于在兩個應(yīng)用程序之間,或分布式系統(tǒng)中發(fā)送消息,進(jìn)行異步通信。
JMS規(guī)范:
? ??????????JMS定義了Java中訪問消息中心的接口,并沒有給予實現(xiàn),實現(xiàn)JSM接口的消息中心稱為JMS Provider,例如ActiveMQ
幾個關(guān)于JMS的概念:????
????????1、JMS Provider:實現(xiàn)JMS接口和規(guī)范的消息中心
????????2、JMS Producer:消息生產(chǎn)者,創(chuàng)建和發(fā)送JMS消息的客戶端應(yīng)用
????????3、JMS Consumer:消息消費者,接收和處理JMS消息的客戶端應(yīng)用
? ??????4、JMS Message:JMS消息,分3個部分:
????????????????(1)消息頭:每個消息頭字段都有相應(yīng)的getter和setter方法
????????????????(2)消息屬性:如果需要除消息頭字段以外的值,那么可以使用消息屬性
????????????????(3)消息體:封裝具體的消息數(shù)據(jù)
? ??????5、JMS Destination :消息目的地,包含?queue?和?topic
? ??????6、JMS Domain:消息傳遞域,JMS規(guī)范中定義了兩種消息傳遞域,分別是點對點和發(fā)布/訂閱消息傳遞域:
? ??????????????(1)點對點(point-to-point,簡寫PTP或P2P)消息傳遞域,該消息傳遞域發(fā)送的消息目的地稱為隊列(queue)
????????????????????特點:
????????????????????????a、每個消息只能有一個消費者
? ? ? ????????????????? b、消息的生產(chǎn)者和消費者之間沒有時間上的相關(guān)性,無論消息消費者在提取消息的時候,消息生產(chǎn)者是否處于運行狀態(tài),消息消費者還是可以提取消息
????????????????(2)發(fā)布/訂閱(publish/subscribe,簡寫pub/sub)消息傳遞域,該消息傳遞域發(fā)送的消息目的地稱為主題(topic)
? ? ? ? ? ????? ?特點:
? ? ? ????????????? ????a、每個消息可以有多個消費者
? ? ? ? ????????????????b、生產(chǎn)者和消費者之間有時間上的相關(guān)性,訂閱一個主題的消費者只能消費自它訂閱之后發(fā)布的消息。
? ??????7、JMS Session :與JMS Provider所建立的會話,可設(shè)置事務(wù),消息消費簽收方式