Java教程之RabbitMQ介紹
前言
RabbitMQ是基於AMQP協議(Advanced Message Queue Protocol)的訊息中介軟體。
什麼是訊息佇列
訊息佇列屬於程式間通訊的一種方式,使用訊息佇列可以透過非同步方式處理資料,藉此可以提高系統效能。我們可以把訊息當作存放資料的容器,訊息的消費者可以從佇列中獲取資料,進行處理。常見的訊息佇列有:ActiveMQ,RabbitMQ,Kafka,RocketMQ等。
RabbitMQ中用到基本概念
Broker:訊息佇列的伺服器實體。
Exchange:訊息交換機,它指定訊息按什麼規則,路由到哪個佇列。
Queue:訊息佇列載體,每個訊息都會被投入到一個或多個佇列。
Binding:繫結,它主要是把exchange和queue按照路由規則繫結起來。
Routing Key:路由關鍵字,exchange根據這個關鍵字進行訊息投遞。
vhost:虛擬主機,一個broker裡可以開設多個vhost,用作不同使用者的許可權分離。
producer:訊息生產者,投遞訊息的程式。
consumer:訊息消費者,接收訊息的程式。
channel:訊息通道,在客戶端的每個連線裡,可以建立多個channel,每個channel代表一個會話任務。
RabbitMQ中訊息模式
1、簡單佇列
一個生產者對應一個消費者。
2、工作佇列
一個生產者,多個消費者,一個訊息只能發給一個消費者,spring中整合rabbitmq時,預設採用公平分發。
3、釋出訂閱模式
傳遞一個訊息到多個消費者中,藉助該模式可以釋出的訊息將被廣播給所有接收者。
使用該模式需要藉助交換機,生產者將訊息傳送到交換機,再透過交換機到達佇列。
RabbitMQ中有四種交換機:direct/topic/headers/fanout。預設交換機是direct,釋出與訂閱的實現使用fanout。
使用交換機時,每個消費者有自己的佇列,生產者將訊息傳送到交換機(X),每個佇列都要繫結到交換機。
4、路由模式
生產者將訊息傳送到direct交換機(路由模式需要藉助直連交換機實現),在繫結佇列和交換機的時候有一個路由key,生產者傳送的訊息會指定一個路由key,那麼訊息只會傳送到相應key相同的佇列,接著監聽該佇列的消費者消費訊息。也就是讓消費者有選擇性的接收訊息。
5、主題模式
又稱萬用字元模式。
使用直連交換機可以改善我們的系統,但是它仍有侷限性,它不能實現多重條件的路由。在訊息系統中,我們不僅想要訂閱基於路由鍵的佇列,還想訂閱基於生產訊息的源,這時候可以使用topic交換機。
使用主題交換機時,路由鍵的語法形式是採用點分割的有意義的單詞。例如"goods.stock.info"。
其中:*星號代表一個單詞,#井號代表0個或多個單詞。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2769706/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RabbitMQ 介紹MQ
- Django基礎教程之介紹Django
- 1.4.0協程之StateFlow和SharedFlow介紹
- 好程式設計師Java學習資源分享RabbitMQ介紹程式設計師JavaMQ
- RabbitMQ的web頁面介紹(三)MQWeb
- 雲端計算教程之容器介紹
- gitbook 入門教程之外掛介紹Git
- RabbitMQ系列(三)RabbitMQ交換器Exchange介紹與實踐MQ
- Java介紹Java
- RabbitMQ系列隨筆——介紹及安裝MQ
- Python教程之udp和tcp協議介紹PythonUDPTCP協議
- [我們一起來學 RabbitMQ 一 ]RabbitMQ 的基本介紹MQ
- Linux入門教程之sed 命令常用操作介紹Linux
- java集合類介紹Java
- Java Selenide 介紹&使用JavaIDE
- java-ToStringBuilder介紹JavaUI
- 安川機器人簡易示教介紹機器人
- RabbitMQ實戰:擴充套件介紹與系列總結MQ套件
- SSH Config教程之基礎知識介紹-必備技巧
- RabbitMq基礎教程之基本概念MQ
- Java元註解介紹Java
- Java 20 新功能介紹Java
- SAP Java Connector 元件介紹Java元件
- Java 18 新功能介紹Java
- Java 16 新功能介紹Java
- Java_異常介紹Java
- Java字串編碼介紹Java字串編碼
- java ShutdownHook介紹與使用JavaHook
- Java Stream API groupingBy()介紹JavaAPI
- RabbitMQ簡介MQ
- RabbitMQ的應用場景以及基本原理介紹MQ
- 快速掌握RabbitMQ(二)——四種Exchange介紹及程式碼演示MQ
- RabbitMQ 的應用場景以及基本原理介紹MQ
- 服務流程之全面的滲透測試服務介紹
- 介紹java -cp & java -jar的區別JavaJAR
- 【java】Aspose.word元件介紹Java元件
- java .stream(). 使用介紹 Streams APIJavaAPI
- 從 Java 到 Kotlin - 介紹 KotlinJavaKotlin