真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

RabbitMQ第四個實操小案例——DirectExchange-創(chuàng)新互聯(lián)

文章目錄
  • RabbitMQ第四個實操小案例——DirectExchange

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站制作、網(wǎng)站設計、外貿(mào)網(wǎng)站建設、察隅網(wǎng)絡推廣、微信小程序定制開發(fā)、察隅網(wǎng)絡營銷、察隅企業(yè)策劃、察隅品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供察隅建站搭建服務,24小時服務熱線:13518219792,官方網(wǎng)址:www.cdcxhl.comRabbitMQ第四個實操小案例——DirectExchange

DirectExchange:這種交換機的模式跟前面的Fouout(廣播)不太一樣,DirectExchange 會將接收到的消息根據(jù)規(guī)則路由到指定的Queue,因此也被稱之為 路由模式(routes)。

他的模型如下所示:
在這里插入圖片描述
我們先說一下上面這個圖吧:

  • 每一個Queue都與Exchange綁定一個或多個bingingKey。(上面queue1與exchange綁定的bindingKey有red和blue,queue2與exchange綁定的bindingKey有red和yellow。)
  • Publisher發(fā)送消息時,指定消息的bindingKey。
  • Exchange根據(jù)消息的bindingKey,將消息轉發(fā)到對應的Queue。
    • 假如現(xiàn)在發(fā)送的消息的bindingKey為blue,那么消息將被queue1接收。
    • 假如現(xiàn)在發(fā)送的消息的bindingKey為yellow,那么消息將被queue2接收。
    • 假如現(xiàn)在發(fā)送的消息的bindingKey為red,那么消息將被queue1和queue2同時接收。

OK,廢話少說,老規(guī)矩,咱們代碼來一波:
實現(xiàn)思路:

步驟一、配置我們的配置類。
步驟二、在Consumer服務中,編寫兩個消費者方法,分別監(jiān)聽direct.queue1和direct.queue2。
步驟三、在Publisher服務中,編寫測試方法,向交換機exchange.direct發(fā)送消息。

步驟一、使用我們的@RabbitListener注解聲明我們的Exchange、Queue、RoutingKey,編寫兩個消費者方法。

@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)聽到 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)聽到 direct.queue2 的消息為:【"+ msg +"】");
}

編寫完代碼,我們重啟一下我們的消費者服務,然后我們看一下我們的RabbitMQ??梢钥吹剑藭r我們的交換機中,綁定的有兩個queue,其中queue1監(jiān)聽的RoutingKey有blue和red、queue2監(jiān)聽的RoutingKey有yellow和red。
在這里插入圖片描述
我們也可以看看我們的queue,確實也多了倆,一個叫direct.queue1,一個叫direct.queue2。
在這里插入圖片描述

步驟二、在Publisher服務中,編寫測試方法,向交換機exchange.direct發(fā)送消息。

@Test
    public void testDirectExchange(){//交換機的名稱
        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);
            }
        }
    }

運行我們的測試方法后,我們看一下Consumer服務的控制臺打印消息:
在這里插入圖片描述
可以看到,direct.queue1 監(jiān)聽到的消息有 Hello, Red 和 Hello, Blue,而direct.queue2 監(jiān)聽到的消息有 Hello, Red 和 Hello, Yellow.

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


文章標題:RabbitMQ第四個實操小案例——DirectExchange-創(chuàng)新互聯(lián)
標題來源:http://weahome.cn/article/deiocp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部