DirectExchange:這種交換機(jī)的模式跟前面的Fouout(廣播)不太一樣,DirectExchange 會(huì)將接收到的消息根據(jù)規(guī)則路由到指定的Queue,因此也被稱(chēng)之為 路由模式(routes)。
他的模型如下所示:
我們先說(shuō)一下上面這個(gè)圖吧:
OK,廢話(huà)少說(shuō),老規(guī)矩,咱們代碼來(lái)一波:
實(shí)現(xiàn)思路:步驟一、配置我們的配置類(lèi)。步驟二、在Consumer服務(wù)中,編寫(xiě)兩個(gè)消費(fèi)者方法,分別監(jiān)聽(tīng)direct.queue1和direct.queue2。步驟三、在Publisher服務(wù)中,編寫(xiě)測(cè)試方法,向交換機(jī)exchange.direct發(fā)送消息。
步驟一、使用我們的@RabbitListener注解聲明我們的Exchange、Queue、RoutingKey,編寫(xiě)兩個(gè)消費(fèi)者方法。
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = "direct.queue1"),
exchange = @Exchange(name = "exchange.direct", type = ExchangeTypes.DIRECT),
key = {"red", "blue"}
))
public void listenerDirectQueue1(String msg){System.out.println("監(jiān)聽(tīng)到 direct.queue1 的消息為:【"+ msg +"】");
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = "direct.queue2"),
exchange = @Exchange(name = "exchange.direct", type = ExchangeTypes.DIRECT),
key = {"red", "yellow"}
))
public void listenerDirectQueue2(String msg){System.err.println("監(jiān)聽(tīng)到 direct.queue2 的消息為:【"+ msg +"】");
}
編寫(xiě)完代碼,我們重啟一下我們的消費(fèi)者服務(wù),然后我們看一下我們的RabbitMQ。可以看到,此時(shí)我們的交換機(jī)中,綁定的有兩個(gè)queue,其中queue1監(jiān)聽(tīng)的RoutingKey有blue和red、queue2監(jiān)聽(tīng)的RoutingKey有yellow和red。
我們也可以看看我們的queue,確實(shí)也多了倆,一個(gè)叫direct.queue1,一個(gè)叫direct.queue2。
步驟二、在Publisher服務(wù)中,編寫(xiě)測(cè)試方法,向交換機(jī)exchange.direct發(fā)送消息。
@Test
public void testDirectExchange(){//交換機(jī)的名稱(chēng)
String exchangeName = "exchange.direct";
//消息
String blueMsg = "Hello, Blue.";
String redMsg = "Hello, Red.";
String yellowMsg = "Hello, Yellow.";
//發(fā)送消息
for (int i = 0; i< 10; i++){if (i % 3 == 0){rabbitTemplate.convertAndSend(exchangeName, "blue", blueMsg);
}else if (i % 3 == 1){rabbitTemplate.convertAndSend(exchangeName, "yellow", yellowMsg);
}else {rabbitTemplate.convertAndSend(exchangeName, "red", redMsg);
}
}
}
運(yùn)行我們的測(cè)試方法后,我們看一下Consumer服務(wù)的控制臺(tái)打印消息:
可以看到,direct.queue1 監(jiān)聽(tīng)到的消息有 Hello, Red 和 Hello, Blue,而direct.queue2 監(jiān)聽(tīng)到的消息有 Hello, Red 和 Hello, Yellow.
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
分享標(biāo)題:RabbitMQ第四個(gè)實(shí)操小案例——DirectExchange-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://muchs.cn/article28/deiocp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、搜索引擎優(yōu)化、動(dòng)態(tài)網(wǎng)站、外貿(mào)建站、網(wǎng)站維護(hù)、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容