Rabbitmq的五種模式和案例


 

 

消息生產者p將消息放入隊列

消費者監聽隊列,如果隊列中有消息,就消費掉,消息被拿走后,自動從隊列刪除

(缺點:消息可能沒有被消費者正確處理,已經消失了,無法恢復)

應用場景:聊天室

1.引入依賴

<dependencies>
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>

<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>1.4.0.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
2.創建鏈接工具類

3.生產者

4.消費者

 

 

生產者將消息放入隊列
多個消費者同時監聽同一個隊列,消息如何被消費?
C1,C2共同爭搶當前消息隊列的內容,誰先拿到消息,誰來負責消費
應用場景:紅包;大型項目中的資源調度過程(直接由最空閑的系統爭搶到資源處理任務) 
1.生產

2.消費1

3.消費2

 

生產者將消息交給交換機
有交換機根據發布訂閱的模式設定將消息同步到所有的綁定隊列中;
后端的消費者都能拿到消息

應用場景:郵件群發,群聊天,廣告

1.生產者

2.消費者1

 

2.消費2

 

 

 
        

生產者發送消息到交換機,同時綁定一個路由Key,交換機根據路由key對下游綁定的隊列進行路
由key的判斷,滿足路由key的隊列才會接收到消息,消費者消費消息

應用場景: 項目中的error報錯

1.生產者

2.消費者1

2.消費者2

*號代表單個詞語
#代表多個詞語

其他的內容與routing路由模式一致

1.生產者

2.消費者1

3.消費者2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM