1. 程式人生 > >初識RabbitMQ系列之一:簡單介紹

初識RabbitMQ系列之一:簡單介紹

核心概念 out queue producer 概念 images logs 紅色 .org

一:RabbitMQ是什麽?

眾所周知,MQ是Message Queue(消息隊列)的意思,RabbitMQ就是眾多MQ框架其中的一款,開源實現了AMQP協議(官網:http://www.amqp.org/),也就是說RabbitMQ是一個開源的消息隊列框架。

他用於在分布式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面都非常的優秀。是當前最主流的消息中間件之一。

RabbitMQ的官網:http://www.rabbitmq.com

二: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系列之一:簡單介紹