国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

在哪里可以找到做網(wǎng)站的公司濟(jì)南網(wǎng)站制作平臺

在哪里可以找到做網(wǎng)站的公司,濟(jì)南網(wǎng)站制作平臺,臨沂設(shè)計公司有哪些,圖片分類展示網(wǎng)站源碼文章目錄 發(fā)布訂閱Fanout 交換機(jī)Direct 交換機(jī)Topic 交換機(jī)通配符規(guī)則 發(fā)布訂閱 在這里插入圖片描述 Fanout 交換機(jī) Fanout 交換機(jī)會將收到的消息路由到每一個跟其綁定的queue上。 我們做一個交換機(jī),兩個隊列,兩個消費(fèi)者分別連接兩個隊列。 定義交換…

文章目錄

    • 發(fā)布訂閱
      • Fanout 交換機(jī)
      • Direct 交換機(jī)
      • Topic 交換機(jī)
        • 通配符規(guī)則

發(fā)布訂閱

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

Fanout 交換機(jī)

Fanout 交換機(jī)會將收到的消息路由到每一個跟其綁定的queue上。

我們做一個交換機(jī),兩個隊列,兩個消費(fèi)者分別連接兩個隊列。

定義交換機(jī),隊列,交換機(jī)與隊列之間的連接:

/*** fanout交換機(jī)配置*/
@Configuration
public class FanoutConfig {/*** 聲明交換機(jī),設(shè)置名稱* @return*/@Beanpublic FanoutExchange fanoutExchange() {return new FanoutExchange("lpy.fanout");}/*** 隊列1* @return*/@Beanpublic Queue fanoutQueue1() {return new Queue("fanout.queue1");}/*** 綁定交換機(jī)和隊列1*/@Beanpublic Binding bindingQueue1(Queue fanoutQueue1, FanoutExchange fanoutExchange) {return BindingBuilder.bind(fanoutQueue1).to(fanoutExchange);}/*** 隊列1* @return*/@Beanpublic Queue fanoutQueue2() {return new Queue("fanout.queue2");}/*** 綁定交換機(jī)和隊列2*/@Beanpublic Binding bindingQueue2(Queue fanoutQueue2, FanoutExchange fanoutExchange) {return BindingBuilder.bind(fanoutQueue2).to(fanoutExchange);}}

定義監(jiān)聽接口:

    @RabbitListener(queues = "fanout.queue1")public void listenFanoutQueue1(String msg) {System.out.println("消費(fèi)者1接收到Fanout消息:" + msg);}@RabbitListener(queues = "fanout.queue2")public void listenFanoutQueue2(String msg) {System.out.println("消費(fèi)者2接收到Fanout消息:" + msg);}

發(fā)送消息:

    @Testpublic void testFanoutExchange() {// 隊列名稱String exchangeName = "lpy.fanout";// 消息String message = "hello fanout!";rabbitTemplate.convertAndSend(exchangeName, "", message);}

啟動,運(yùn)行:

在這里插入圖片描述

可以看到,我們發(fā)的一個消息,被兩個消費(fèi)者消費(fèi)了,說明實現(xiàn)成功,交換機(jī)把消息路由到了每個隊列。

Direct 交換機(jī)

不同的消息路由到不同的隊列,根據(jù)key路由建。

在這里插入圖片描述

下面來實現(xiàn)一下,基于注解來聲明隊列和交換機(jī),這樣比較方便,直接定義再接口上。

    @RabbitListener(bindings = @QueueBinding(value = @Queue(name = "direct.queue1"),exchange = @Exchange(name = "lpy.direct", type = ExchangeTypes.DIRECT),key = {"red", "blue"}))public void listenDirectQueue1(String msg){System.out.println("消費(fèi)者1接收到direct.queue1的消息:" + msg);}@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "direct.queue2"),exchange = @Exchange(name = "lpy.direct", type = ExchangeTypes.DIRECT),key = {"red", "yellow"}))public void listenDirectQueue2(String msg){System.out.println("消費(fèi)者2接收到direct.queue2的消息:" + msg);}

啟動測試:

  1. key 為 red
 @Testpublic void testSendDirectExchange() {// 交換機(jī)名稱String exchangeName = "lpy.direct";// 消息String message = "hello direct red";// 發(fā)送消息rabbitTemplate.convertAndSend(exchangeName, "red", message);// 消息String message2 = "hello direct blue";// 發(fā)送消息rabbitTemplate.convertAndSend(exchangeName, "blue", message2);// 消息String message3 = "hello direct yellow";// 發(fā)送消息rabbitTemplate.convertAndSend(exchangeName, "yellow", message3);}

在這里插入圖片描述

可以看到,根據(jù)key來進(jìn)行了路由。

Topic 交換機(jī)

Topic 交換機(jī)與Direct相似,只不過使用了key可以使用通配符。

RoutingKey一般由一個或多個單詞組成,用“.”分割。

通配符規(guī)則

# 匹配一個或多個詞

* 匹配一個詞

例如:

舉例:

a.#   可以匹配a.b.c、a.b等a.*   只可以匹配a.b

現(xiàn)在來實驗一下吧:

和Direct同樣的寫法,只是key改為通配符的:

    @RabbitListener(bindings = @QueueBinding(value = @Queue(name = "topic.queue1"),exchange = @Exchange(name = "lpy.topic", type = ExchangeTypes.TOPIC),key = "a.*"))public void listenTopicQueue1(String msg){System.out.println("消費(fèi)者接收到topic.queue1的消息:" + msg);}@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "topic.queue2"),exchange = @Exchange(name = "lpy.topic", type = ExchangeTypes.TOPIC),key = "a.#"))public void listenTopicQueue2(String msg){System.out.println("消費(fèi)者接收到topic.queue2的消息:" + msg);}

發(fā)送消息:

    @Testpublic void testSendTopicExchange() {// 交換機(jī)名稱String exchangeName = "lpy.topic";// 消息String message = "hello topic a.b";// 發(fā)送消息rabbitTemplate.convertAndSend(exchangeName, "a.b", message);// 消息String message1 = "hello topic a.b.c";// 發(fā)送消息rabbitTemplate.convertAndSend(exchangeName, "a.b.c", message1);}

運(yùn)行結(jié)果:

在這里插入圖片描述

可以看到#確實可以匹配多個單詞,而*只能匹配一個。

http://aloenet.com.cn/news/41716.html

相關(guān)文章:

  • 嘉興網(wǎng)站建設(shè)推廣廣告公司排名
  • 東莞網(wǎng)站建設(shè)流程站長工具百度百科
  • 鐵路建設(shè)監(jiān)理網(wǎng)站武漢seo推廣優(yōu)化公司
  • 成都專業(yè)網(wǎng)站建設(shè)公司semifinal
  • 外貿(mào)商城網(wǎng)站系統(tǒng)域名解析查詢
  • win7 iis部署網(wǎng)站谷歌sem和seo區(qū)別
  • 網(wǎng)站建設(shè)方案書應(yīng)急處置方案seoul是什么意思
  • 做副業(yè)賺錢網(wǎng)站網(wǎng)絡(luò)推廣平臺排名
  • 成都極客聯(lián)盟網(wǎng)站建設(shè)公司網(wǎng)站建設(shè)公司大全
  • 精品網(wǎng)課平臺seo優(yōu)化技術(shù)
  • 自己做報名網(wǎng)站地推團(tuán)隊聯(lián)系方式
  • 吉安高端網(wǎng)站建設(shè)公司網(wǎng)站怎么優(yōu)化排名的方法
  • wordpress網(wǎng)站模板能打開任何網(wǎng)站瀏覽器
  • 梵克雅寶官網(wǎng)四葉草手鏈寧波seo關(guān)鍵詞優(yōu)化報價
  • 網(wǎng)站建設(shè)kaituozu中國建設(shè)網(wǎng)官方網(wǎng)站
  • 短視頻營銷案例分析關(guān)鍵詞seo排名
  • 兩個人做類似的夢 網(wǎng)站電商seo引流
  • 制作教育類網(wǎng)站微信小程序開發(fā)工具
  • 織夢手機(jī)網(wǎng)站模板刪除網(wǎng)絡(luò)營銷與直播電商
  • 深圳龍崗網(wǎng)站制作昆明seo案例
  • 手機(jī)微網(wǎng)站怎么制作吉林網(wǎng)站seo
  • 連鎖店 網(wǎng)站建設(shè) 中企動力seo搜索是什么
  • 小白測評做網(wǎng)站整合營銷傳播成功案例
  • 做彩票網(wǎng)站用什么服務(wù)器2023年8月份新冠
  • 網(wǎng)站運(yùn)營與管理的目的是合肥網(wǎng)絡(luò)推廣公司
  • 青島網(wǎng)頁制作設(shè)計營銷寧波如何做seo排名優(yōu)化
  • 馬克杯網(wǎng)站開發(fā)百度seo怎么優(yōu)化
  • 成都企業(yè)網(wǎng)站開發(fā)公司上海app定制開發(fā)公司
  • wordpress添加功能搜索引擎優(yōu)化課程
  • 網(wǎng)站建設(shè)設(shè)計外包公司網(wǎng)絡(luò)營銷的概念與特點(diǎn)