消息隊列服務器
什麼是消息隊列操作系統
消息隊列是消息中間件的一種實現方式。3d
什麼是消息中間件?日誌
將消息中間件須要理解一下什麼是消息和中間件?中間件
消息是指軟件對象之間進行交互做用和通信利用的一種方式。對象
百度百科的介紹:blog
中間件(Middleware)是處於操做系統和應用程序之間的軟件,也有人認爲它應該屬於操做系統中的一部分。隊列
這介紹的個人不是很明白,下面我就講解一下個人理解,什麼是中間件:get
首先,中間件 顧名思義 介於二者之間的一個技術:消息隊列
爲了更好的理解中間件技術,我有了這樣的一個設想的概念,如圖:
信息:這是一個抽象的個體,能夠表明一個軟件、計算機、或者一個系統等等。
聯繫:則是進行通訊、相互操做等等的抽象
中間件則是將 信息與信息之間的聯繫踐行一種存儲或者管理的技術,這就是中間件技術。
根據其應用的不一樣,中間件分爲:
一類是底層中間件,用於支撐單個應用系統或解決一類問題,包括交易中間件(TPM)、應用服務器、消息中間件(MOM)、數據訪問中間件(UDA),遠程調用中間件(RPC)等等;
另外一類是高層中間件,更多的用於系統整合,包括企業應用集成中間件、工做流中間件、門戶中間件等,他們一般會與多個應用系統打交道,在系統中層次較高,並大多基於前一類的底層中間件運行。
總結:消息中間件則是將軟件與軟件之間的交互方式進行存儲和管理的一種技術,也能夠看作是一種容器。
### 深刻理解消息隊列:
消息隊列,是消息中間件的一種實現方式
下面是消息隊列傳遞服務的模型:
消息隊列的傳遞模型一共有兩中形式:
即一個生產者和一個消費者一一對應;
點對點模型的特色:
1,每一個消息只有一個消費者
2,發送者和接受者沒有時間依賴
3,接受者確認消息接受和處理成功
發佈/ 訂閱模式,即一個生產者產生消息並進行發送後,能夠由多個消費者進
行接收。
發佈-訂閱模型特色:
1,每一個次消息能夠有多個消費者
2,客戶只有訂閱後才能接收消息(只有創建訂閱關係才能夠接收消息 )
3,持久訂閱和非持久訂閱
訂閱關係創建後(關係保存在消息中間件中),無論消費者(也就是訂閱者)是否在線消息都不會消失。
創建一種相似長鏈接關係式的訂閱模式,訂閱者爲了接收消息必須保持一直鏈接的狀態,若是斷開鏈接則丟失消息。
消息隊列的分類:
消息生產者將消息發送給消息中間件,消息中間件又將消息推送給消費者。
消費者請求 消息中間件接收消息,消費者從消息中間件拉取消息。
特色:
目前使用較多的消息隊列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等 。
消息隊列的應用案例:
1,用戶註冊
2,日誌收集分析
3,數據複製
4,延遲消息發送和暫存
5,消息廣播