亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

rabbitmq學習5:Topics

2019-11-08 03:09:40
字體:
來源:轉載
供稿:網友

非常感謝 http://wubin850219.iteye.com/blog/1004973

 在前面的《rabbitmq學習4:Routing 》中使用一般的名字的路由,現在想通過一些路由規則讓消費者來接受符合規則的消息?那應當怎么樣呢?那就要用到類型為topic的Exchange了。

Topics的工作示意圖如下:

我們可能從圖中看到有*和#兩個通配符。*表示通配一個詞;#表示通配0個或多個詞。

下面讓我們來看看Topics的程序如何實現的吧!

P端的程序如下 :

 

java代碼  收藏代碼package com.abin.rabbitmq;    import com.rabbitmq.client.Channel;  import com.rabbitmq.client.Connection;  import com.rabbitmq.client.ConnectionFactory;    public class EmitLogTopic {       

運行結果可能如下:

Java代碼  收藏代碼 [x] Sent 'logs.error.one':'this is one error logs:0'   [x] Sent 'logs.error.one':'this is one error logs:1'  ################################   [x] Sent 'logs.error.two':'this is two error logs:0'   [x] Sent 'logs.error.two':'this is two error logs:1'   [x] Sent 'logs.error.two':'this is two error logs:2'  ################################   [x] Sent 'logs.info.one':'this is one info logs:0'   [x] Sent 'logs.info.one':'this is one info logs:1'   [x] Sent 'logs.info.one':'this is one info logs:2'   [x] Sent 'logs.info.one':'this is one info logs:3'  

 

第一個C端的代碼如下:

Java代碼  收藏代碼package com.abin.rabbitmq;    import com.rabbitmq.client.Channel;  import com.rabbitmq.client.Connection;  import com.rabbitmq.client.ConnectionFactory;  import com.rabbitmq.client.QueueingConsumer;    public class ReceiveLogsTopic {      private static final String EXCHANGE_NAME = "topic_logs";// 定義Exchange名稱        public static void main(String[] argv) throws Exception {            ConnectionFactory factory = new ConnectionFactory();          factory.setHost("localhost");          Connection connection = factory.newConnection();          Channel channel = connection.createChannel();            channel.exchangeDeclare(EXCHANGE_NAME, "topic");// 聲明topic類型的Exchange            String queueName = "queue_topic_logs1";// 定義隊列名為“queue_topic_logs1”的Queue          channel.queueDeclare(queueName, false, false, false, null);  //      String routingKeyOne = "*.error.two";// "error"路由規則  //      channel.queueBind(queueName, EXCHANGE_NAME, routingKeyOne);// 把Queue、Exchange及路由綁定          String routingKeyTwo = "logs.*.one";//通配所有logs下第三詞(最后一個)詞為one的消息          channel.queueBind(queueName, EXCHANGE_NAME, routingKeyTwo);            System.out.println(" [*] Waiting for messages.");            QueueingConsumer consumer = new QueueingConsumer(channel);          channel.basicConsume(queueName, true, consumer);            while (true) {              QueueingConsumer.Delivery delivery = consumer.nextDelivery();              String message = new String(delivery.getBody());              String routingKey = delivery.getEnvelope().getRoutingKey();                System.out.println(" [x] Received '" + routingKey + "':'" + message                      + "'");          }      }  }  

 

第一個C端的運行結果如下:

Java代碼  收藏代碼[*] Waiting for messages.  [x] Received 'logs.error.one':'this is one error logs:0'  [x] Received 'logs.error.one':'this is one error logs:1'  [x] Received 'logs.info.one':'this is one info logs:0'  [x] Received 'logs.info.one':'this is one info logs:1'  [x] Received 'logs.info.one':'this is one info logs:2'  [x] Received 'logs.info.one':'this is one info logs:3'  

 

第二個C端的程序如下: 

Java代碼  收藏代碼package com.abin.rabbitmq;    import com.rabbitmq.client.Channel;  import com.rabbitmq.client.Connection;  import com.rabbitmq.client.ConnectionFactory;  import com.rabbitmq.client.QueueingConsumer;    public class ReceiveLogsTopicTwo {      private static final String EXCHANGE_NAME = "topic_logs";//定義Exchange名稱        public static void main(String[] argv) throws Exception {            ConnectionFactory factory = new ConnectionFactory();          factory.setHost("localhost");          Connection connection = factory.newConnection();          Channel channel = connection.createChannel();            channel.exchangeDeclare(EXCHANGE_NAME, "topic");//聲明topic類型的Exchange            String queueName = "queue_topic_logs2";//定義隊列名為“queue_topic_logs2”的Queue          channel.queueDeclare(queueName, false, false, false, null);          String routingKeyOne = "logs.#";//通配所有logs下的消息          channel.queueBind(queueName, EXCHANGE_NAME, routingKeyOne);//把Queue、Exchange及路由綁定            System.out.println(" [*] Waiting for messages.");            QueueingConsumer consumer = new QueueingConsumer(channel);          channel.basicConsume(queueName, true, consumer);            while (true) {              QueueingConsumer.Delivery delivery = consumer.nextDelivery();              String message = new String(delivery.getBody());              String routingKey = delivery.getEnvelope().getRoutingKey();                System.out.println(" [x] Received '" + routingKey + "':'" + message                      + "'");          }      }  }  

 

第二個C端的運行結果如下:

Java代碼  收藏代碼[*] Waiting for messages.  [x] Received 'logs.error.one':'this is one error logs:0'  [x] Received 'logs.error.one':'this is one error logs:1'  [x] Received 'logs.error.two':'this is two error logs:0'  [x] Received 'logs.error.two':'this is two error logs:1'  [x] Received 'logs.error.two':'this is two error logs:2'  [x] Received 'logs.info.one':'this is one info logs:0'  [x] Received 'logs.info.one':'this is one info logs:1'  [x] Received 'logs.info.one':'this is one info logs:2'  [x] Received 'logs.info.one':'this is one info logs:3'  

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕日韩在线视频| 国产亚洲精品美女| 日韩精品日韩在线观看| 国产精品一香蕉国产线看观看| 亚洲视频国产视频| 欧美激情精品久久久久久大尺度| 91精品国产乱码久久久久久蜜臀| 日本高清视频精品| 亚洲欧洲视频在线| 在线观看欧美视频| 国产丝袜精品第一页| 日韩免费不卡av| 久久久av一区| 国产91精品黑色丝袜高跟鞋| 久久久久久69| 久久天天躁狠狠躁老女人| 欧美激情一区二区三区久久久| 亚洲欧洲激情在线| 国产精品一区电影| 69视频在线播放| 国产一区二区三区视频| 久久精品电影网站| 日韩动漫免费观看电视剧高清| 97在线观看视频国产| 国产成人精品在线| 国内精品久久久久久影视8| 美女久久久久久久久久久| 98精品国产高清在线xxxx天堂| 亚洲综合小说区| 在线精品国产成人综合| 日韩在线观看免费av| 亚洲香蕉成视频在线观看| 亚洲国产成人久久综合一区| 国产欧美精品一区二区| 亚洲国产精品一区二区三区| 亚洲精品国产综合区久久久久久久| 久久天天躁夜夜躁狠狠躁2022| 国产精品一区=区| 久久精品国产96久久久香蕉| 国精产品一区一区三区有限在线| 国产一区二区三区日韩欧美| 欧美激情综合色| 日韩av在线网页| 7m精品福利视频导航| 欧美激情极品视频| 国产97在线|亚洲| 亚洲天堂开心观看| 97精品视频在线观看| 欧美另类69精品久久久久9999| 欧美性在线视频| 在线观看国产欧美| 久久久久久久国产精品| 亚洲一区www| 日本午夜精品理论片a级appf发布| 992tv成人免费视频| 影音先锋欧美在线资源| 亚洲一级免费视频| 欧美成人三级视频网站| 国产精品稀缺呦系列在线| 亚洲性无码av在线| 亚洲影影院av| 这里只有精品久久| 亚洲999一在线观看www| 久久精品国产电影| 久久精品在线播放| 美女福利精品视频| 黄色成人av网| 97久久伊人激情网| 亚洲第一区中文99精品| 国产精品2018| 久久99青青精品免费观看| 91日本视频在线| 亚洲国产精品一区二区久| 日韩网站在线观看| 91国产精品91| 久久国产精品偷| 最新中文字幕亚洲| 久久精品免费电影| 国产成人精品久久久| 国产精品www色诱视频| 国产亚洲人成网站在线观看| 亚洲一区二区少妇| 欧美激情一区二区三区在线视频观看| 久久精视频免费在线久久完整在线看| 国产z一区二区三区| 日韩美女视频免费看| 中文字幕亚洲综合久久| 一区二区日韩精品| 热99精品只有里视频精品| 亚洲国产精品高清久久久| 日韩av免费在线| 欧美一级片久久久久久久| 97精品视频在线播放| 久久影院中文字幕| 亚洲综合在线做性| 久久影院中文字幕| 国产日韩av高清| 45www国产精品网站| 国产婷婷成人久久av免费高清| 国产精品a久久久久久| 久久久爽爽爽美女图片| 国产精品久久久| 亚洲最大av在线| 日韩精品在线观看一区二区| 国产精品一区二区电影| 亚洲一区二区少妇| 国产精品一区二区久久久久| 亚洲国产私拍精品国模在线观看| 国产免费一区视频观看免费| 高清视频欧美一级| 国产精品劲爆视频| 成人a在线视频| 91久久在线视频| 亚洲国产精品久久久久秋霞蜜臀| 亚洲国产精品一区二区三区| 欧美第一页在线| 在线激情影院一区| 久久久久久91| 国产女同一区二区| 日本19禁啪啪免费观看www| 亚洲精品国产成人| 日韩在线免费观看视频| 一区二区三区精品99久久| 色偷偷9999www| 国产精品美女视频网站| 亚洲精品v欧美精品v日韩精品| 黄色精品一区二区| 国产精品黄色av| 欧美丰满少妇xxxx| 国产性猛交xxxx免费看久久| 欧美视频一区二区三区…| 国产欧美一区二区三区在线看| 红桃av永久久久| 九色精品免费永久在线| 精品一区电影国产| 国产午夜精品一区理论片飘花| 69久久夜色精品国产69乱青草| 日韩电影在线观看永久视频免费网站| 国产精品高清网站| 136fldh精品导航福利| 日韩精品极品视频免费观看| 亚洲丝袜av一区| 热99在线视频| 在线视频日韩精品| 欧美高清在线观看| 亚洲小视频在线观看| 97国产在线观看| www.久久久久久.com| 亚洲精品一区二区三区婷婷月| 96精品久久久久中文字幕| 九九综合九九综合| 亚洲黄色在线看| 97久久精品人人澡人人爽缅北| 精品网站999www| 国产裸体写真av一区二区| 欧美俄罗斯性视频| 亚洲国产欧美一区二区丝袜黑人| 国产精品久久久| 97在线看免费观看视频在线观看| 亚洲老板91色精品久久| 亚洲伊人久久大香线蕉av| 国产日韩欧美视频在线| 中国china体内裑精亚洲片| 国产成人精品久久二区二区91|