RabbitMQ六种队列模式-简单队列模式
前言
RabbitMQ六種隊(duì)列模式-簡單隊(duì)列 [本文]
RabbitMQ六種隊(duì)列模式-工作隊(duì)列
RabbitMQ六種隊(duì)列模式-發(fā)布訂閱
RabbitMQ六種隊(duì)列模式-路由模式
RabbitMQ六種隊(duì)列模式-主題模式
在官網(wǎng)的教程中,描述了如上六類工作隊(duì)列模式:
接下來幾篇文章一起來看看這幾種隊(duì)列模式吧,本篇為簡單隊(duì)列模式。
文章目錄
文章目錄
- 前言
- 文章目錄
- 1 實(shí)現(xiàn)功能
- 2 構(gòu)建項(xiàng)目
- 2.1 導(dǎo)入依賴
- 2.2 封裝Connection
- 3 生產(chǎn)者
- 4 消費(fèi)者
- 5 測試環(huán)節(jié)
- 5.1 啟動(dòng)RabbitMQ
- 5.2 創(chuàng)建vhost
- 5.3 依次運(yùn)行Producer\Customer
- 6 簡單隊(duì)列總結(jié)
1 實(shí)現(xiàn)功能
功能描述:一個(gè)生產(chǎn)者 P 發(fā)送消息到隊(duì)列 Q,一個(gè)消費(fèi)者 C 接收
P 表示為生產(chǎn)者 、C 表示為消費(fèi)者,紅色表示隊(duì)列。
2 構(gòu)建項(xiàng)目
創(chuàng)建一個(gè)簡單的maven項(xiàng)目
- rabbitmq 父工程
– common 存放公用工具類
– customer 消費(fèi)者
– producer生產(chǎn)者
2.1 導(dǎo)入依賴
在 rabbitmq 父工程 pom.xml 導(dǎo)入 maven 依賴
<dependencies><dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>3.6.5</version></dependency> </dependencies>2.2 封裝Connection
common模塊中封裝 rabbitmq 連接類
public class MQConnectionUtils {public static Connection newConnection() throws IOException, TimeoutException {/** 1.定義連接工廠 */ConnectionFactory factory = new ConnectionFactory();/** 2.設(shè)置服務(wù)器地址 */factory.setHost("127.0.0.1");/** 3.設(shè)置協(xié)議端口號(hào) */factory.setPort(5672);/** 4.設(shè)置vhost */factory.setVirtualHost("test001_host");/** 5.設(shè)置用戶名稱 */factory.setUsername("guest");/** 6.設(shè)置用戶密碼 */factory.setPassword("guest");/** 7.創(chuàng)建新的連接 */Connection newConnection = factory.newConnection();return newConnection;}}3 生產(chǎn)者
生產(chǎn)者負(fù)責(zé)創(chuàng)建消息隊(duì)列并發(fā)送消息入列,簡單分為5步:
4 消費(fèi)者
消費(fèi)者實(shí)現(xiàn)和生產(chǎn)者實(shí)現(xiàn)過程差不多,但是沒有關(guān)閉連接和通道,是因?yàn)橐M(fèi)者一直等待隨時(shí)可能發(fā)來的消息,大致分為如下3步:
5 測試環(huán)節(jié)
至此,整個(gè)項(xiàng)目代碼寫完了,接下來就是測試環(huán)節(jié)
5.1 啟動(dòng)RabbitMQ
5.2 創(chuàng)建vhost
5.3 依次運(yùn)行Producer\Customer
Producer生產(chǎn)者啟動(dòng)
Rabbit管理平臺(tái),三條消息
Customer消費(fèi)者啟動(dòng)
6 簡單隊(duì)列總結(jié)
簡單隊(duì)列也稱為點(diǎn)對(duì)點(diǎn),即一個(gè)生產(chǎn)者對(duì)應(yīng)一個(gè)消費(fèi)者,生產(chǎn)者發(fā)送消息到隊(duì)列,消費(fèi)者在隊(duì)列中取出消息消費(fèi)。
生產(chǎn)者大致步驟:
消費(fèi)者大致步驟:
簡單隊(duì)列雖然簡單,但是有一些不足,比如這種點(diǎn)對(duì)點(diǎn)無疑在復(fù)雜情況下會(huì)產(chǎn)生大量冗余代碼,繼續(xù)看下一篇工作隊(duì)列吧。
案例代碼:https://www.lanzous.com/i5ydu6d
我創(chuàng)建了一個(gè)java相關(guān)的公眾號(hào),用來記錄自己的學(xué)習(xí)之路,感興趣的小伙伴可以關(guān)注一下微信公眾號(hào)哈:niceyoo
總結(jié)
以上是生活随笔為你收集整理的RabbitMQ六种队列模式-简单队列模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring AOP 面向切面编程
- 下一篇: 脱离极域电子教室软件控制策略(实测有效)