這篇文章主要介紹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
則就是根據不同路由鍵,把消息發送到某一類隊列中。
以上是RabbitMQ是什么的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。