JMS和ActiveMQ安裝

JMS規範

初識消息中間件 中的消息中間件的編年史圖中,我們就瞭解到了JMS誕生於2001年,其本質是一套Java的API。


JMS(Java Messaging Service)是Java平臺上有關面向消息中間件的技術規範,它便於消息系統中的Java應用程序進行消息交換,並且通過提供標準的產生、發送、接收消息的接口簡化企業應用的開發,ActiveMQ則是這個規範的一個具體實現。



JMS對象模型

JMS規範模型包含如下幾個要素:

  1. 連接工廠
    連接工廠負責創建一個JMS連接。

  2. JMS連接
    JMS連接(Connection)表示JMS客戶端和服務器端之間的一個活動的連接,是由客戶端通過調用連接工廠的方法建立的。

  3. JMS會話
    JMS會話(Session)表示JMS客戶與JMS服務器之間的會話狀態。JMS會話建立在JMS連接上,表示客戶與服務器之間的一個會話線程。

  4. JMS目的/Broker
    客戶用來指定它生產的消息的目標和它消費的消息的來源的對象,一個消息中間件的實例。

  5. JMS生產者和消費者
    生產者(Message Producer)和消費者(Message Consumer)對象由Session對象創建,用於發送和接收消息。

    其中消息的消費可以採用以下兩種方法之一:

    • 同步消費 ,通過調用 消費者的receive 方法從目的地中顯式提取消息。receive 方法可以一直阻塞到消息到達。
    • 異步消費 ,客戶可以爲消費者註冊一個消息監聽器,以定義在消息到達時所採取的動作。



JMS規範中的消息

接下來再來看一看JMS規範中的消息,JMS 消息由以下三部分組成:

  • 消息頭。每個消息頭字段都有相應的getter 和setter 方法。
  • 消息屬性。如果需要除消息頭字段以外的值,那麼可以使用消息屬性。
  • 消息體。JMS 定義的消息類型有 TextMessage、MapMessage、BytesMessage、StreamMessage 和 ObjectMessage。ActiveMQ也有對應的實現。



JMS消息模型

Point-to-Point(P2P) / 點對點

消息通過稱爲隊列的一個虛擬通道來進行交換。隊列是生產者發送消息的目的地和接受者消費消息的消息源。


每條消息通僅會傳送給一個接受者。可能會有多個接受者在一個隊列中偵聽,但是每個隊列中的消息只能被隊列中的一個接受者消費
在這裏插入圖片描述
消息存在先後順序。一個隊列會按照消息服務器將消息放入隊列中的順序,把它們傳送給消費者當消息已被消費時,就會從隊列頭部將它們刪除。


每個消息只有一個消費者(Consumer)(即一旦被消費,消息就不再在消息隊列中) ,發送者發送了消息之後,不管接收者有沒有正在運行,它不會影響到消息被髮送到隊列


接收者在成功接收消息之後需向隊列應答成功,如果希望發送的每個消息都應該被成功處理的話,使用這個P2P模式。



Topic/ 主題(發佈訂閱(Pub/Sub) )

消息生產者(發佈)將消息發佈到topic中,同時有多個消息消費者(訂閱)消費該消息。和點對點方式不同,發佈到topic的消息會被所有訂閱者消費
在這裏插入圖片描述

發送者在發送了消息之後,如果沒有接收者正在運行,那麼該消息就會丟失,如果你希望發送的消息可以不被做任何處理、或者被一個消息者處理、或者可以被多個消費者處理的話,那麼可以採用topic模型





ActiveMQ安裝、部署和運行

首先我們肯定需要去ActiveMQ的官網去下載一個安裝包,下載地址:http://activemq.apache.org/components/classic/download/ ,然後將其解壓
在這裏插入圖片描述

進入上圖中的bin目錄,然後運行bin目錄的win64文件夾下的activemq.bat即可。
Linux下操作類似(進入bin目錄運行./activemq start啓動,./activemq stop關閉)。


運行後在瀏覽器中訪問http://127.0.0.1:8161/admin,即可看到ActiveMQ的管理控制檯(默認賬號密碼都是admin),ActiveMQ中,61616爲服務端口,8161爲管理控制檯端口。
在這裏插入圖片描述


至於我們在使用ActiveMQ時,默認的服務端口爲61616,一般沒有更改的必要,如果想要更改其端口號,可以在其安裝目錄的 conf 文件夾下的 activemq.xml 文件中進行修改
在這裏插入圖片描述
在這裏插入圖片描述

在其中我們就可以看到其端口號,然後可以對其進行修改。並且我們還發現ActiveMQ還支持很多其他的協議,比如我們比較熟悉的stomp及ws,基於Stomp的聊天工具 中就曾介紹過Stomp的用法,還包括了前端JS如何訪問,至於websocket我們也是同樣有過相關介紹的。


另外在訪問http://127.0.0.1:8161/admin ,登錄ActiveMQ的管理控制檯時,其默認的賬號密碼也是可以進行修改的
在這裏插入圖片描述
在這裏插入圖片描述

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