ActiveMq的基礎介紹

qq_41783100發表於2020-12-14

一、JMS介紹

JMS是java的訊息服務,JMS的客戶端之間可以通過JMS服務進行非同步的訊息傳輸。

訊息模型

Point-to-Point(P2P) — 點對點
特點:
每個訊息只有一個消費者(Consumer)(即一旦被消費,訊息就不再在訊息佇列中)。
接收者在成功接收訊息之後需向佇列應答成功。
如果你希望傳送的每個訊息都應該被成功處理的話,那麼你需要P2P模式。

Publish/Subscribe(Pub/Sub)— 釋出訂閱
特點:
釋出者和訂閱者之間有時間上的依賴性。針對某個主題(Topic)的訂閱者,它必須建立一個訂閱者之後,才能消費釋出者的訊息,而且為了消費訊息,訂閱者必須保持執行的狀態。
為了緩和這樣嚴格的時間相關性,JMS允許訂閱者建立一個可持久化的訂閱。這樣,即使訂閱者沒有被啟用(執行),它也能接收到釋出者的訊息。
如果你希望傳送的訊息可以不被做任何處理、或者被一個訊息者處理、或者可以被多個消費者處理的話,那麼可以採用Pub/Sub模型

訊息的消費

在JMS中,訊息的產生和消費是非同步的。對於消費來說,JMS的訊息者可以通過兩種方式來消費訊息。
同步
訂閱者或接收者呼叫receive方法來接收訊息,receive方法在能夠接收到訊息之前(或超時之前)將一直阻塞
非同步
訂閱者或接收者可以註冊為一個訊息監聽器。當訊息到達之後,系統自動呼叫監聽器的onMessage方法。

二、activemq介紹

這種模式下,傳送和接收是非同步的,傳送者無需等待; 二者的生命週期未必相同: 傳送訊息的時候接收者不一定執行,接收訊息的時候傳送者也不一定執行;一對多通訊: 對於一個訊息可以有多個接收者。

功能介紹

解耦:呼叫者無需等待
非同步:解決了系統之間耦合呼叫的問題
削峰:抵禦洪峰流量,保護了主頁務
具體玩法:
①實現高可用、高效能、可伸縮,易用和安全的企業級面向訊息服務的系統
②非同步訊息的消費和處理
③控制訊息的消費順序
④可以和spring和springboot整合簡化程式碼
⑤配置叢集容錯的MQ叢集

埠介紹

activemq採用61616埠提供JMS服務
採用8161埠提供管理控制檯服務

相關文章