消息中間件RabbitMQ

簡介

目前,主流的消息中間件主要有:ActiveMQ、Kafka、RabbitMQ、RocketMQ等等......,而我們今天的主角是:RabbitMQ,RabbitMQ是基於erlang語言開發具有高可用高併發的優點,適合集羣服務器,它是基於AMDP協議來實現的,AMQP的和主要特徵是面向消息、隊列、路由(包括點對點和發佈/訂閱)、可靠性、安全,RabbitMQ支持多種語言,有消息確認機制和持久化機制,保證數據不丟失的前提做到可靠性、可用性。

消息與消息隊列

消息(Message)是指應用於應用之間傳送的數據,消息的類型包括文本字符串、JSON、XML、內嵌對象等等...

所謂 消息中間件 / 消息隊列(Message Queue Middleware,簡稱MQ)是利用高效可靠的消息傳遞機制進行數據交流,同時可以基於數據通信來進行分佈式系統的繼承,消息中間件一般有兩種傳遞模式:點對點(Point-to-Point)模式和發佈/訂閱(Pub/Sub)模式,點對點模式是基於隊列的,消息生產者發送消息到隊列,消息消費者從隊列中接收消息,隊列的存在使得消息的異步傳輸成爲了可能,發佈訂閱模式定義瞭如何向一個內容節點發布和訂閱內容,這個內容節點叫topic,這種模式可以滿足消費者發佈一個消息,多個消費者同時消費同一信息的需求。

性能對比

瞭解什麼是AMQP協議?

其中:Exchange和Message Queue存在着綁定的關係。

AMQP核心概念

  • Server:又稱Broker,接受客戶端的連接,實現AMQP實體服務;
  • Connection:連接,應用於程序與Broker的網絡連接;
  • Channel:網絡通道,幾乎所有的操作都是在channel中進行的,channel是進行消息讀寫的通道,客戶可以建立多個channel,每個channel代表一個會話任務;
  • Message:消息,服務器與應用程序之間傳送的數據,有Properties和Body組成,Properties可以對消息進行修飾,比如消息的優先級,延遲等高級特性,Body是消息體內容;
  • Virtual host:虛擬地址,用於進行邏輯隔離,最上層的消息路由,一個Virtrual host裏面可以有若干個Exchange和Queue,用一個Virtrual host裏面不能有相同名字的Exchange或Queue;
  • Exchange:交換機,接收消息,很久路由鍵轉發消息到綁定的隊列;
  • Exchange和Queue之間的虛擬連接,binding中可以包含touting key;
  • Routing key:一個路由規則,虛擬機可用它來確定一個如何路由一個特定的消息;
  • Queue:也成Message Queue,消息隊列,保存消息並將他們轉發給消費者;

消息中間的作用和使用場景

 

RabbitMQ的核心組件

 

 

發佈了104 篇原創文章 · 獲贊 16 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章