RabbitMQ中間件

1、簡介

消息中間件也稱消息隊列,是指用高效可靠的消息傳遞機制進行與平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進行分布式系統(tǒng)的集成。通過提供消息傳遞和消息隊列模型,可以在分布式環(huán)境下擴展進程的通信。
消息傳遞:指的是程序之間通過在消息中發(fā)送數(shù)據(jù)進行通信,而不是通過直接調(diào)用彼此來通信

2、當(dāng)下主流的消息中間件

RabbitMQ、Kafka、ActiveMQ、RocketMQ

3、作用

冗余(存儲)、擴展性、可恢復(fù)性、順序保證、緩沖、異步通信、多語言客戶端、管理界面、插件機制

4、消息中間件的兩種模式
1、P2P模式

1.三角色:
消息隊列Queue、發(fā)送者Sender、接收者Receiver

2.P2P特點

  • 每個消息只有一個消費者(Consumer),即一旦被消費,消息就不再在消息隊列中
  • 發(fā)送者和接收者之間在時間上沒有依賴性,也就是說當(dāng)發(fā)送者發(fā)送了消息之后,不管接收者有沒有正在運行它不會影響到消息被發(fā)送到隊列
  • 接收者在成功接收消息之后需向隊列應(yīng)答成功
  • 如果希望發(fā)送的每個消息都會被成功處理的話,那么需要P2P模式

2、Pub/Sub模式

  1. 三角色:
    主題Topic、發(fā)布者Publisher、訂閱者Subscriber
  1. 特點
  • 每個消息可以有多個消費者
  • 發(fā)布者和訂閱者之間有時間上的依賴性。針對某個主題(Topic)的訂閱者,它必須創(chuàng)建一個訂閱者之后,才能消費發(fā)布者的消息
  • 為了消費消息,訂閱者必須保持運行的狀態(tài)
  • 如果希望發(fā)送的消息可以不被做任何處理、或者只被一個消息者處理、或者可以被多個消費者處理的話,那么可以采用Pub/Sub模型

5、RabbitMQ的三種模式

單一模式、普通模式、鏡像模式(將消息隊列做成鏡像隊列,存放于多個節(jié)點,屬于HA方案?;谄胀耗J缴吓渲苗R像模式,實現(xiàn)高可用)

6、RabbitMQ的集群節(jié)點

1、內(nèi)存節(jié)點:所有數(shù)據(jù)存儲在內(nèi)存
2、磁盤節(jié)點保存狀態(tài)到內(nèi)存和磁盤

7、RabbitMQ簡介

基于Erlong語言開發(fā),基于AMQP協(xié)議實現(xiàn)。本身不支持反正;支持高并發(fā)、可擴展。支持AJAX、持久化,用于在分布式系統(tǒng)中存儲轉(zhuǎn)發(fā)消息

8、了解RabbitMQ

在RabbitMQ集群中,必須至少有一個磁盤節(jié)點,否則隊列元數(shù)據(jù)無法寫入集群中,當(dāng)磁盤節(jié)點宕掉時,集群無法寫入新的隊列元數(shù)據(jù)信息。

9、集群重啟順序

啟動順序:磁盤節(jié)點--->內(nèi)存結(jié)點
關(guān)閉順序:內(nèi)存節(jié)點--->磁盤節(jié)點
注意:最后關(guān)閉的一定時磁盤節(jié)點,否則會造成啟動失敗、數(shù)據(jù)丟失等異常情況。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容