RabbitMQ(一)-概念

       RabbitMQ基於Erlang語言和AMQP高級消息隊列協議,是一種開源的消息代理和隊列服務器。

       AMQP協議模型 生產者只需要把消息放到虛擬主機的隊列中,而不用關心是哪個隊列,而消費者只需要監聽隊列,從隊列中獲取消息。架構圖如下:

                           

    關於圖中的概念解釋:

           Server:又稱Broker,接收客戶端的連接,實現AMQP實體服務

           Connection:連接,應用程序與Broker的網絡連接

           Channel:網絡信道,幾乎所有的操作都在Channer中進行,Channel是進行消息讀寫的通道,客戶端可建立多個

                            Channel,每個Channel代表一個會話任務。

           Message:消息,服務器和應用程序之間傳送的數據,由Properties和Body組成。Properties可以對消息進行修飾,比如                                 消息的優先級、延遲等高級特性;Body則是消息體內容。

           Virtual host:虛擬地址,用於進行邏輯隔離(隔離不同的項目),最上層的消息路由。一個Virtual Host裏面可以有若干個                                 Exchange和Queue,同一個Virtual Host裏面不能有相同名稱的Exchange或Queue,生產者先把消息扔到                                     Virtual Host。 

            Exchange:交換機,接收消息,根據路由鍵轉發消息到綁定的隊列

            Binding:Exchange和Queue之間的虛擬連結,bingding中可包含Routing key

            Routing key:一個路由規則,虛擬機可用它來確定如何路由一個消息

            Queue:也稱Message Queue 消息隊列,保存消息並轉發給消費者。

     如下圖爲消息流通圖:生產者把消息扔給Virtual Host,並指定好Exchange和Routing Key,消費者只需要從隊列中取消息即可

                                  

 

             

           
 

    

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章