当前位置: 首页 > news >正文

RabbitMQ: topic 结构

生产者 

package com.qf.mq2302.topic;import com.qf.mq2302.utils.MQUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;public class Pubisher {public static final String EXCHANGE_NAME="mypubilisher";public static void main(String[] args) throws Exception {Connection connection = MQUtils.getConnection();Channel channel = connection.createChannel();channel.exchangeDeclare(EXCHANGE_NAME,"topic");String msg="好好学习";String routingkey="lazy.orange.rabbit";channel.basicPublish(EXCHANGE_NAME,routingkey,null,msg.getBytes("utf-8"));channel.close();connection.close();}
}

消费者1

package com.qf.mq2302.topic;import com.qf.mq2302.utils.MQUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.DeliverCallback;
import com.rabbitmq.client.Delivery;import java.io.IOException;public class MyConsumer01 {public static final String EXCHANGE_NAME="mypubilisher";public static void main(String[] args) throws Exception {Connection connection = MQUtils.getConnection();Channel channel = connection.createChannel();channel.exchangeDeclare(EXCHANGE_NAME,"topic");String queue = channel.queueDeclare().getQueue();channel.basicQos(1);//绑定队列和交换机String routingkey="*.orange.*";channel.queueBind(queue,EXCHANGE_NAME,routingkey);channel.basicConsume(queue, false, new DeliverCallback() {@Overridepublic void handle(String consumerTag, Delivery message) throws IOException {byte[] body = message.getBody();String s = new String(body, "utf-8");System.out.println(s);channel.basicAck(message.getEnvelope().getDeliveryTag(),false);}},consumerTag -> {});}}

消费者2

package com.qf.mq2302.topic;import com.qf.mq2302.utils.MQUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.DeliverCallback;
import com.rabbitmq.client.Delivery;import java.io.IOException;public class MyConsumer02 {public static final String EXCHANGE_NAME="mypubilisher";public static void main(String[] args) throws Exception {Connection connection = MQUtils.getConnection();Channel channel = connection.createChannel();channel.exchangeDeclare(EXCHANGE_NAME,"topic");String queue = channel.queueDeclare().getQueue();channel.basicQos(1);//绑定队列和交换机String routingkey2="*.*.rabbit";String routingkey3="lazy.#";channel.queueBind(queue,EXCHANGE_NAME,routingkey3);channel.queueBind(queue,EXCHANGE_NAME,routingkey2);channel.basicConsume(queue, false, new DeliverCallback() {@Overridepublic void handle(String consumerTag, Delivery message) throws IOException {byte[] body = message.getBody();String s = new String(body, "utf-8");System.out.println(s);channel.basicAck(message.getEnvelope().getDeliveryTag(),false);}},consumerTag -> {});}}

http://www.lryc.cn/news/162942.html

相关文章:

  • 信息系统项目管理教程(第4版):第二章 信息技术及其发展
  • 有哪些适合初学者的编程语言?
  • uni-app动态tabBar,根据不同用户展示不同的tabBar
  • 手写Spring:第6章-资源加载器解析文件注册对象
  • Redis 7 第八讲 集群模式(cluster)架构篇
  • 【PowerQuery】导入与加载XML
  • vue 预览视频
  • 4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒!(文末送书)
  • 【无标题】@Scheduled 的cron
  • IP和MAC的作用区别
  • python趣味编程-数独游戏
  • MySQL/MariaDB 查询某个 / 多个字段重复数据
  • 【力扣每日一题】2023.9.10 课程表Ⅱ
  • VSCODE CMAKE C++ 工程调试, C++不以科学计数法输出并控制小数位数
  • Drools规则引擎入门学习记录
  • 肖sir__设计测试用例方法之判定表06_(黑盒测试)
  • <图像处理> 空间滤波基础
  • 如何在Django中使用django-crontab启动定时任务、关闭任务以及关闭指定任务
  • mysql配置项整理
  • 【KRouter】一个简单且轻量级的Kotlin Routing框架
  • 时间管理类书籍阅读笔记
  • CSS文字居中对齐学习
  • 《论文阅读》CARE:通过条件图生成的共情回复因果关系推理 EMNLP 2022
  • React 开发一个移动端项目(1)
  • c#查看代码的执行耗时( Stopwatch )
  • Python网络爬虫库:轻松提取网页数据的利器
  • YOLOv5算法改进(15)— 更换Neck之AFPN
  • Vue2项目练手——通用后台管理项目第七节
  • 《Web安全基础》04. 文件操作安全
  • docker-compose安装nginx