初識RabbitMQ系列之一 簡單介紹

2021-08-04 17:31:05 字數 1655 閱讀 4628

一:rabbitmq是什麼?

眾所周知,mq是message  queue(訊息佇列)的意思,rabbitmq就是眾多mq框架其中的一款,開源實現了amqp協議(官網:也就是說rabbitmq是乙個開源的訊息佇列框架。

他用於在分布式系統中儲存**訊息,在易用性、擴充套件性、高可用性等方面都非常的優秀。是當前最主流的訊息中介軟體之一。

rabbitmq的官網:

二:rabbitmq優勢&劣勢?

優勢:1:安裝部署簡單,上手門檻低,符合amqp標準;

2:集群易擴充套件,可以輕鬆的增減集群節點,通過增加節點可以實現成倍的效能提公升;

3:有強大的web管理頁面;

4:支援訊息持久化、支援訊息確認機制、靈活的任務分發機制等;

5:可靠性高,不會丟失訊息;

劣勢:1:效能相對 kafka、zero相比要差很多;

三:何時選擇rabbitmq使用?

如果你希望使用乙個可靠性高、功能強大、易於管理的訊息佇列系統那麼就選擇rabbitmq;

如果你想用乙個效能高,但偶爾丟點資料不是很在乎可以使用kafka或者zeromq。

四:rabbitmq 的系統架構

rabbitmq整個執行過程如下:

(1)生產者客戶端連線到訊息佇列伺服器,建立乙個channel。

(2)生產者客戶端定義乙個**器exchange,並設定相關屬性。

(3)生產者客戶端定義乙個路由標識,並傳送訊息到exchange。

(3)消費者客戶端定義乙個queue,並設定相關屬性。

(4)消費者客戶端使用routing key,在exchange和queue之間建立好繫結關係。

(5)綁好關係後,傳送端只要傳送符合路由規則的訊息,都會被exchange分發到對應的queue上,客戶端就可以直接在queue上獲取到訊息了。

如上圖所示:amqp 裡主要要說兩個元件:exchange 和 queue

綠色的 x 就是 exchange ,紅色的是 queue ,這兩者都在 server 端,又稱作 broker ,

這部分是 rabbitmq 實現的,而藍色的則是客戶端,通常有 producer 和 consumer 兩種型別。

五:rabbitmq的核心概念

生產者:資料的傳送方,把訊息傳送到交換機。

消費者:資料的接收方,從佇列接收訊息

exchange:訊息交換機,會根據設定好的規則把訊息分發到乙個或多個佇列上。

queue:訊息佇列載體,所有訊息最終都會被投入到乙個或多個佇列。

binding:繫結,它的作用就是把exchange和queue按照路由規則繫結起來。

routing key:路由關鍵字,exchange根據這個關鍵字進行訊息投遞,傳送訊息和繫結的時候都用得到。

vhost:虛擬主機,乙個broker裡可以開設多個vhost,用作不同使用者的許可權分離。

channel:訊息通道,在客戶端的每個連線裡,可建立多個channel,每個channel代表乙個會話任務。

這些概念非常重要,都是核心概念,一定要弄清楚。

初識RabbitMQ系列之一 簡單介紹

一 rabbitmq是什麼?眾所周知,mq是message queue 訊息佇列 的意思,rabbitmq就是眾多mq框架其中的一款,開源實現了amqp協議 官網 也就是說rabbitmq是乙個開源的訊息佇列框架。他用於在分布式系統中儲存 訊息,在易用性 擴充套件性 高可用性等方面都非常的優秀。是當...

GITHUB自學系列之一 初識 GITHUB

很多人難免要問這個問題,說網上關於 github 的資料很多,為什麼還要寫呢?講真,網上關於 android 的資料更多,為什麼你們還喜歡看我寫的文章呢?是因為哪怕同樣的內容,我寫出來之後就有了我的風格,除了我的幽默以及我的帥,關鍵的是我有辦法讓你們看的輕鬆易懂,並且還有我個人的一些見解與指導,這大...

vSphere 4系列之一 vSphere簡介

vsphere 4系列之一 vsphere簡介 一 什麼是vsphere vsphere是vmware推出的基於雲的新一代資料中心虛擬化套件,提供了虛擬化基礎架構 高可用性 集中管理 監控等一整套解決方案 二 vsphere 4套件組成 1.esx esxi 基於裸金屬架構的伺服器虛擬化作業系統,是...