RabbitMQ學習系列(一): 介紹

  1. 介紹html

      RabbitMQ是一個由erlang開發的基於AMQP(Advanced Message Queue )協議的開源實現。用於在分佈式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面都很是的優秀。是當前最主流的消息中間件之一。安全

      RabbitMQ的官網:http://www.rabbitmq.com服務器

 

  2. AMQP架構

    AMQP,是應用層協議的一個開放標準,爲面向消息的中間件設計。消息中間件主要用於組件之間的解耦,消息的發送者無需知道消息使用者的存在,一樣,消息使用者也不用知道發送者的存在。AMQP的主要特徵是面向消息、隊列、路由(包括點對點和發佈/訂閱)、可靠性、安全。分佈式

 

  3. 系統架構spa

       

  消息隊列的使用過程大概以下:設計

    (1)客戶端鏈接到消息隊列服務器,打開一個channel。htm

    (2)客戶端聲明一個exchange,並設置相關屬性。中間件

    (3)客戶端聲明一個queue,並設置相關屬性。blog

    (4)客戶端使用routing key,在exchange和queue之間創建好綁定關係。

    (5) 客戶端投遞消息到exchange。exchange接收到消息後,就根據消息的key和已經設置的binding,進行消息路由,將消息投遞到一個或多個隊列裏。

 

    以下圖所示:AMQP 裏主要要說兩個組件:Exchange 和 Queue

    綠色的 X 就是 Exchange ,紅色的是 Queue ,這二者都在 Server 端,又稱做 Broker ,

    這部分是 RabbitMQ 實現的,而藍色的則是客戶端,一般有 Producer 和 Consumer 兩種類型。

 

  4. 幾個概念

    P: 爲Producer,數據的發送方。

    C:爲Consumer,數據的接收方。

    Exchange:消息交換機,它指定消息按什麼規則,路由到哪一個隊列。

    Queue:消息隊列載體,每一個消息都會被投入到一個或多個隊列。

    Binding:綁定,它的做用就是把exchange和queue按照路由規則綁定起來。

    Routing Key:路由關鍵字,exchange根據這個關鍵字進行消息投遞。

    vhost:虛擬主機,一個broker裏能夠開設多個vhost,用做不一樣用戶的權限分離。

    channel:消息通道,在客戶端的每一個鏈接裏,可創建多個channel,每一個channel表明一個會話任務。

 

   PS: RabbitMQ 的一些基本的概念,就介紹完了,雖然都是些概念,可是瞭解他的一些原理,仍是很重要的,特別是exchange 和 路由的概念和做用。接下來會具體介紹他的安裝和使用。

   查看RabbitMQ 系列其餘文章,http://www.cnblogs.com/zhangweizhong/category/855479.html

相關文章
相關標籤/搜索