本篇文章帶來的內容是介紹RabbitMQ,讓大家了解一些RabbitMQ的相關知識。有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
RabbitMQ概覽
#RabbitMQ
是一個高效能的分散式訊息中介軟體。它由Erlang編寫,這種語言天生支援分佈式,而且效能極高(但是比較難上手)。
通訊概念
RabbitMQ簡單理解就是一個佇列服務,我們的生產者不斷地往它投遞訊息,而消費者不斷地從它那裡獲取消息。但相較於利用redis
的List這類簡單佇列,RabbitMQ的訊息投遞更靈活一點。首先需要知道一些RabbitMQ中的通訊概念:
● exchange(交換器)
● queue(佇列):訊息佇列載體,每個訊息都會被投入到一個或多個佇列。
● binding(綁定):它的作用就是把exchange和queue依照路由規則綁定起來。
● routing key(路由關鍵字):exchange根據這個關鍵字進行訊息投遞。
● vhost(虛擬主機):不同的vhost下,資料完全隔離,預設vhost為「/」
● channel(頻道):在一個tcp連線下,可建立多個channel,每個channel代表一個會話任務。
● producer(生產者)
● consumer(消費者)
RabbitMQ中Exchange
#類似於一個路由器,我們的consumer
並不會把訊息直接投遞給佇列,而是投遞給exchange
,exchange
根據我們投遞時的路由鍵(routing key)再傳送到特定的佇列。這樣的設計讓訊息可以靈活選路,發送到某一類的隊列中,形成一對多的關係,而不僅僅是一對一。
Exchange
所以說RabbitMQ中的exchange
很方便,很強大,它有這樣幾種類型:
● direct
● fanout
● topic
● headers(幾乎用不到)
direct
#交換器很簡單,有時候我們只需要一個很簡單的佇列(訊息投遞到其中,然後不斷消費它),這時候我們就可以用
direct
fanout交換器忽略路由鍵,把訊息同時
topic
則就是根據不同路由鍵,把訊息傳送到某一類別佇列中。
相關影片教學推薦:《PHP教學
》以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! ! ###以上是什麼是RabbitMQ? RabbitMQ的簡單介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!