日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RabbitMq topic

發(fā)布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RabbitMq topic 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

概述

代碼

結(jié)果


概述

上篇direct必須是生產(chǎn)者發(fā)布消息指定的routingKey和消費者在隊列綁定時指定的routingKey完全相等時才能匹配到隊列上。topic與direct不同,可以進行模糊匹配。topic交換機的消息不能隨意的設(shè)置選擇routingKey,必須是由點隔開的一系列的標識符組成。標識符可以是任何東西,但是一般都與消息的某些特性相關(guān)。例子:“l(fā)ink.orange.rabbit”,你可以定義任何數(shù)量的標識符,上限為255個字節(jié)

匹配規(guī)則:

*??其中星號可以代替一個單詞

#? 可以替代零個或更多的單詞,只要能模糊匹配上就能將消息映射到隊列中。當一個隊列的綁定鍵為#的時候,這個隊列將會無視消息的路由鍵,接收所有的消息

注:隊列1 將接受warn相關(guān)的消息

? ? ? 隊列2 將接受info 相關(guān)消息 debugger所有消息

代碼

生產(chǎn)者

package com.ll.mq.hellomq.topic;import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory;/*** * @author ll 生產(chǎn)者**/ public class Producer {public static void main(String[] args) {try {ConnectionFactory factory = new ConnectionFactory();factory.setHost("127.0.0.1");factory.setPort(5672);factory.setUsername("kysc");factory.setPassword("123456");Connection connection = factory.newConnection();Channel channel = connection.createChannel();// Routing 的路由規(guī)則使用直連接String EXCHANGE_NAME = "exchange.topic";String[] routingKeys = { "link.warn.rabbit", "link.warn.elephant", "debugger.info"};for (String routingKey : routingKeys) {String message = "Hello RabbitMQ - " + routingKey;System.out.println(message);channel.basicPublish(EXCHANGE_NAME, routingKey, null, message.getBytes("UTF-8"));}// 關(guān)閉資源channel.close();connection.close();} catch (Exception e) {e.printStackTrace();}} }

消費者1

package com.ll.mq.hellomq.topic;import java.io.IOException;import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.Consumer; import com.rabbitmq.client.DefaultConsumer; import com.rabbitmq.client.Envelope; /*** * @author ll 消費者1**/ public class ConsumerOne {static String EXCHANGE_NAME = "exchange.topic";static String QUEUE_NAME = "queue.topic.q1";public static void main(String[] argv) throws Exception {ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost");factory.setPort(5672);factory.setUsername("kysc");factory.setPassword("123456");Connection connection = factory.newConnection();Channel channel = connection.createChannel();// 聲明交換機類型channel.queueDeclare(QUEUE_NAME, false, false, false, null);channel.exchangeDeclare(EXCHANGE_NAME, "topic");String[] routingKeys = {"*.warn.*"};for (int i = 0; i < routingKeys.length; i++) {channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, routingKeys[i]);}Consumer consumer = new DefaultConsumer(channel){@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {String message = new String(body, "UTF-8");System.out.println(" [C] ConsumerOne '" + message + "', 接受...");}};channel.basicConsume(QUEUE_NAME, true, consumer);} }

消費者2

package com.ll.mq.hellomq.topic;import java.io.IOException;import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.Consumer; import com.rabbitmq.client.DefaultConsumer; import com.rabbitmq.client.Envelope; /*** * @author ll 消費者2**/ public class ConsumerTwo {static String EXCHANGE_NAME = "exchange.topic";static String QUEUE_NAME = "queue.topic.q2";public static void main(String[] argv) throws Exception {ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost");factory.setPort(5672);factory.setUsername("kysc");factory.setPassword("123456");Connection connection = factory.newConnection();Channel channel = connection.createChannel();// 聲明交換機類型channel.queueDeclare(QUEUE_NAME, false, false, false, null);channel.exchangeDeclare(EXCHANGE_NAME, "topic");String[] routingKeys = {"debugger.#"};for (int i = 0; i < routingKeys.length; i++) {channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, routingKeys[i]);}Consumer consumer = new DefaultConsumer(channel){@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {String message = new String(body, "UTF-8");System.out.println(" [C] ConsumerTwo '" + message + "', 接受中...");}};channel.basicConsume(QUEUE_NAME, true, consumer);} }

?

結(jié)果

生產(chǎn)者:Hello RabbitMQ - link.warn.rabbit
? ? ? ? ? ? ? Hello RabbitMQ - link.warn.elephant
? ? ? ? ? ? ? Hello RabbitMQ - debugger.info

消費者1??[C] ConsumerOne 'Hello RabbitMQ - link.warn.rabbit', 接受...
? ? ? ? ? ? ? ?[C] ConsumerOne 'Hello RabbitMQ - link.warn.elephant', 接受...

消費者2??[C] ConsumerTwo 'Hello RabbitMQ - debugger.info', 接受中...

下一篇?https://blog.csdn.net/lilongwangyamin/article/details/105118955?rabbitmq rpc遠程過程調(diào)用?

總結(jié)

以上是生活随笔為你收集整理的RabbitMq topic的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品一二三四五区 | jzzjzz日本丰满少妇 | 91偷拍网站 | 精品人妻无码一区二区性色 | 日韩av一区二区三区在线观看 | 91影院在线观看 | 国产无遮挡又黄又爽免费网站 | 亚洲 国产 欧美 日韩 | 91tv国产成人福利 | 中文字幕第11页 | 久久青青视频 | 影音先锋国产资源 | 黄色三级在线 | 日本伊人网 | 97国产成人 | 国产a免费视频 | 日韩成人免费 | 在线观看理论片 | 欧美成人秋霞久久aa片 | 亚洲少妇18p | 日日操av| 亚洲理论电影在线观看 | a∨鲁丝一区鲁丝二区鲁丝三区 | 成人在线视频网址 | 国产亚洲精品码 | 久久精久久 | 杨幂一区二区三区免费看视频 | 成人先锋av | 亚洲国产tv| 国产乱码精品一区二区三区五月婷 | 欧美另类精品 | 男人用嘴添女人下身免费视频 | 99r热 | 亚洲色图久久 | 91影院在线观看 | 日韩一页 | 色视频2 | 性欧美4khd高清极品 | 成人精品亚洲人成在线 | 毛片免费一区二区三区 | 欧美又大又硬又粗bbbbb | 免费看欧美成人a片无码 | 久久国产精品久久久久久 | 中文字幕23页 | 欧美日韩一区二区综合 | 国产精品无码久久久久 | 久久人人插 | 捆绑少妇玩各种sm调教 | 日本一级免费视频 | 黄色a视频 | 丰满人妻av一区二区三区 | 亚洲成年人网站在线观看 | 日韩欧美一区在线观看 | 亚洲网友自拍 | 一区二区三区小视频 | 国产黄色大片 | 毛片视频播放 | 97碰| 久久激情婷婷 | 欧美日韩中文字幕在线播放 | 人人av在线 | www.久久婷婷 | 性做久久久久久 | 中文字幕欧美色图 | 日本少妇xxxx动漫 | 一本视频在线 | 波多野结衣视频免费 | 自拍第一区 | 亚洲自拍偷拍欧美 | 亚洲国产精品18久久久久久 | 欧美久久精品一级黑人c片 1000部多毛熟女毛茸茸 | 日本老年老熟无码 | 高清一区二区三区视频 | 亚洲最大的成人网站 | 99成人 | 亚洲精品久久久久久无码色欲四季 | 国产亚韩 | 黄色片子免费 | 久久久夜夜夜 | 探花视频在线版播放免费观看 | 老头老太吃奶xb视频 | 中文字幕在线播放一区 | 狠狠综合久久av一区二区 | 亚洲视频在线视频 | 致单身男女免费观看完整版 | 色眯眯影视| 国产中文字幕在线视频 | 林天顾悦瑶笔趣阁 | 69xx网站| 高清日韩一区二区 | 中文字幕 欧美日韩 | 一二三av | 夜夜嗨av一区二区三区四区 | 淫片网站 | 黄色片www| 乱子伦视频在线看 | 日韩精品999 | 日本高清www | 欧美午夜小视频 |