一、JMS相關概念
1、企業消息系統:
也稱消息中間件(MOM,Message-Oriented Middleware),它允許應用程序之間通過消息的方式進行通信,它具有兩個顯著的特點:
應用程序之間通過虛擬的通道Destination來交換消息,發送者和接收者不必了解對方,只需知道對方的Destination和消息格式即可通信。
消息是異步傳送的,每個消息都是一個自包含的單元,發送者無需等待接收者接收和處理消息。
2、JMS:
JMS(Java Message Service)是Java程序與企業消息系統進行交互的規范,它提供了一組API用于創建、發送、接收和讀取消息。JMS定義了一組通用的消息概念和功能,旨在降低開發者訪問企業消息系統的難度,同時最大化應用程序的可移植性。
3、JMS應用的幾種角色:
JMS客戶端(JMS Clients):利用JMS API訪問消息服務的Java程序。
非JMS客戶端(Non-JMS Clients):利用特定消息系統的專有API訪問消息服務的程序。
消息(Messages):JMS應用之間發送和接收的數據實體。
JMS提供者(JMS Provider):實現JMS規范的企業消息系統。
管理對象(Administered Objects):企業消息系統中管理員預先配置供客戶端調用的與具體實現無關的JMS對象。
4、管理對象:
JMS提供者內部實現各有不同,為了使JMS客戶端不和特定的JMS提供者耦合,JMS通過管理對象來隔離JMS提供者的內部實現。主要有兩種類型的管理對象:
ConnectionFactory:用于創建到JMS提供者的連接的工廠對象。
Destination:用來表示發送消息的目的地和接收到的消息的來源的對象。
消息系統的管理員將管理對象配置到指定的JNDI命名空間上。JMS客戶端通過標準JNDI接口就可以訪問這些管理對象。
二、JMS消息模型
1、Pub/Sub模型:
一對多廣播消息模式。在Pub/Sub模型中,消息發送方稱為Publisher,消息接收方稱為Subscriber。主題Topic充當Publisher和Subscriber之間的中介,對某個Topic感興趣的Subscriber在Topic上注冊,Publisher將消息發送到指定的Topic,Topic上的消息將遞送給所有注冊的Subscriber。
Pub/Sub模型的主要特點:
對Topic上的一個消息,注冊的每個Subscriber均得到該消息的一個拷貝。
Topic上的消息是自動遞送給Subscriber的,不需要Subscriber去主動獲取新消息,這種方式也稱為推模式(Push Model)。
Publisher和Subscriber可以在運行時刻動態添加和刪除。
在使用Active MQ ,Tomcat和Spring架構的javaEE項目環境下。問題如下
1.Topic上的消息有沒有順序
2.如果有,Topic上的消息是按什么順序自動遞送給Subscriber的
3.需要設置嗎
,如果需要,有哪些設置方式,如何設置
2、P2P模型:
一對一消息模式。在P2P模型中,消息發送方稱為Sender,消息接收方稱為Receiver。隊列Queue充當Sender和Receiver之間的中介,Sender將消息發送到指定的Queue,Receiver從指定的Queue上獲取消息。
P2P模型的主要特點:
對Queue上的每個消息,即使有多個Receiver請求該消息,有且只有一個Receiver接收到該消息。即每個消息只能被一個Receiver消費,消費之后消息就從Queue上刪除了。
Receiver需要到Queue上請求消息,而不是自動遞給它的,這種方式也稱為拉模式(Pull Model)。
Queue上的消息是有順序的,消息按照它發送到Queue上的順序被Receiver取走。
JMS提供了兩組API來支持上面兩組模型的應用。
柳德才
13691193654
18942949207
QQ:422157370
liudecai_zan@126.com湖北-武漢-江夏-廟山