1. 程式人生 > >RabbitMQ(二) RabbitMQ 原理(重要)

RabbitMQ(二) RabbitMQ 原理(重要)

1. Message

   訊息。訊息是不具名的,它由訊息頭訊息體組成。訊息體是不透明的,而訊息頭則由
一系列可選屬性組成,這些屬性包括:routing-key(路由鍵)、priority(相對於其他訊息的優先
權)、delivery-mode(指出訊息可能永續性儲存)等。

2.Publisher

訊息的生產者。也是一個向交換器釋出訊息的客戶端應用程式。

3.Consumer

   訊息的消費者。表示一個從訊息佇列中取得訊息的客戶端應用程式。

4.Exchange

   交換器。用來接收生產者傳送的訊息並將這些訊息路由給伺服器中的佇列。
   三種常用的交換器型別
   a. direct(釋出與訂閱完全匹配)
   b. fanout(廣播)
   c. topic(主題,規則匹配)

5.Binding

    繫結。用於訊息佇列和交換器之間的關聯。一個繫結就是基於路由鍵將交換器和訊息
    佇列連線起來的路由規則,所以可以將交換器理解成一個由繫結構成的路由表。

6.Queue

   訊息佇列。用來儲存訊息直到傳送給消費者。它是訊息的容器,也是訊息的終點。一
   個訊息可投入一個或多個佇列。訊息一直在佇列裡面,等待消費者連結到這個佇列將其取
   走。

7.Routing-key

路由鍵。RabbitMQ 決定訊息該投遞到哪個佇列的規則。佇列通過路由鍵繫結到交換器。
訊息傳送到MQ 伺服器時,訊息將擁有一個路由鍵,即便是空的,RabbitMQ 也會將其
和繫結使用的路由鍵進行匹配。如果相匹配,訊息將會投遞到該佇列。如果不匹配,訊息將會進入黑洞。

8.Connection

    連結。指rabbit 伺服器和服務建立的TCP 連結。

9.Channel

    通道。
   1,Channel 中文叫做通道,是TCP 裡面的虛擬連結。例如:電纜相當於TCP,通道是  一個獨立光纖束,一條TCP 連線上建立     多條通道是沒有問題的。
    2,TCP 一旦開啟,就會建立AMQP 通道。
    3,無論是釋出訊息、接收訊息、訂閱佇列,這些動作都是通過通道完成的。

10.Virtual Host

    虛擬主機。表示一批交換器,訊息佇列和相關物件。虛擬主機是共享相同的身份認證和加密環境的獨立伺服器域。每個vhost         本質上就是一個mini 版的RabbitMQ 伺服器,擁有自己的佇列、交換器、繫結和許可權機制。vhost 是AMQP 概念的基礎,必須在      連結時指定,RabbitMQ 預設的vhost 是/

11.Borker

      表示訊息佇列伺服器實體。

重點:

a )資訊如何傳送到相應的佇列

    在實際使用中,不同的訊息需要傳遞到不同的訊息佇列中,就要有相應的傳遞規則,這些規則就是“路由鍵”。

    而交換器就是根據路由鍵定義的規則將訊息傳遞到相應的佇列中。

b) 交換器型別

     1.Direct 交換器(釋出與訂閱完全匹配)

          通過完全匹配路由鍵的名稱將資訊傳遞給消費者。

      2.Topic 交換器(主題,規則匹配)

          路由鍵名稱可以使用萬用字元形式傳遞訊息

      3.Fanout 交換器(廣播)

        不設定路由鍵的名稱,訊息傳送給所有的消費者。