MQ簡介:java
MQ全稱爲Message Queue, 消息隊列(MQ)是一種應用程序對應用程序的通訊方法。應用程序經過寫和檢索出入列隊的針對應用程序的數據(消息)來通訊,而無需專用鏈接來連接它們。消息傳遞指的是程序之間經過在消息中發送數據進行通訊,而不是經過直接調用彼此來通訊,直接調用一般是用於諸如遠程過程調用的技術。算法
MQ特色:服務器
MQ的消費-生產者模型的一個典型的表明,一端往消息隊列中不斷的寫入消息,而另外一端則能夠讀取或者訂閱隊列中的消息。MQ和JMS相似,但不一樣的是JMS是SUN Java消息中間件服務的一個標準和API定義,而MQ則是遵循了AMQP協議的具體實現和產品。數據結構
使用場景:異步
在項目中,將一些無需即時返回且耗時的操做提取出來,進行了異步處理,而這種異步處理的方式大大的節省了服務器的請求響應時間,從而提升了系統的吞吐量。ide
JMS簡介:.net
JMS(Java Messaging Service)是Java平臺上有關面向消息中間件(MOM)的技術規範,它便於消息系統中的Java應用程序進行消息交換,而且經過提供標準的產生、發送、接收消息的接口簡化企業應用的開發,翻譯爲Java消息服務。線程
JMS術語:翻譯
1)JMS是實現JMS接口消息中間件中間件
2)Provider(MessageProvider):生產者
3)Consumer(MessageConsumer):消費者
4)PTP:Point to Point,即點對點的消息模型
5)Pub/Sub:publish/Subscribe,即發佈/訂閱的消息模型
6)Queue:隊列目標
7)Topic:主題目標
8)ConnectionFactory:鏈接工廠,JMS用他建立鏈接
9)Connection:JMS客戶端到JMS Provider的鏈接
10)Destination:消息的目的地
11)Session:會話,一個發送或者接受的線程
JMS的隊列消息傳遞過程以下圖(消費者與生產者):
JMS的主題消息傳遞過程以下圖(發佈/訂閱):
JMS和MQ的關係:
JMS是一個用於提供消息服務的技術規範,它制定了在整個消息服務提供過程當中的全部數據結構和交互流程。而MQ則是消息隊列服務,是面向消息中間件(MOM)的最終實現,是真正的服務提供者;MQ的實現能夠基於JMS,也能夠基於其餘規範或標準。