MQ、JMS 關系的理解


MQ簡介:

MQ全稱為Message Queue, 消息隊列(MQ)是一種應用程序對應用程序的通信方法。應用程序通過寫和檢索出入列隊的針對應用程序的數據(消息)來通信,而無需專用連接來鏈接它們。消息傳遞指的是程序之間通過在消息中發送數據進行通信,而不是通過直接調用彼此來通信,直接調用通常是用於諸如遠程過程調用的技術。

MQ特點:

MQ的消費-生產者模型的一個典型的代表,一端往消息隊列中不斷的寫入消息,而另一端則可以讀取或者訂閱隊列中的消息。MQ和JMS類似,但不同的是JMS是SUN Java消息中間件服務的一個標准和API定義,而MQ則是遵循了AMQP協議的具體實現和產品。

使用場景:

在項目中,將一些無需即時返回且耗時的操作提取出來,進行了異步處理,而這種異步處理的方式大大的節省了服務器的請求響應時間,從而提高了系統的吞吐量。

JMS簡介:

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,也可以基於其他規范或標准。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM