Routing即按照某条路线把消息发送出去,所有这条路线上的队列都将接收到消息。
使用direct转发器,在转发器上使用同一routingkey绑定多个队列,根据routingkey发送消息,所有绑定的队列都将收到消息
direct转发器,把消息直接转发到绑定routingkey的队列:
channel.exchangeDeclare("direct_logs", "direct");
channel.basicPublish("direct_logs", severity , null, SerializationUtils.serialize(object));
转发器与队列的绑定(指定routingkey):
//在绑定临时队列和转发器时指定routingkey
channel.queueBind(queueName, "direct_logs", severity);
工作队列中使用的默认转发器,转发器也是direct,工作队列是同一队列上声明多个consumer并行;Routing是用在转发器上同一routingkey绑定多个队列(刚开始没有理解)
package com.demo.mq.rabbitmq.example04;
import java.io.IOException;
import java.io.Serializable;
import java.util.Random;
import org.apache.commons.lang3.SerializationUtils;
import com.demo.mq.rabbitmq.MqManager;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
/**
* 发送消息类
* @author sheungxin
*
*/
public class Send{
/**
* 发送消息,direct转发器,通过routingKey匹配相应的queue
* @param object 消息主体
* @throws IOException
*/
public static void sendAToB(Serializable object) throws Exception{
Connection conn=MqManager.newConnection();
Channel channel=conn.createChannel();
channel.exchangeDeclare("direct_logs", "direct");
for(int i=0;i<4;i++){
String severity=getSeverity();
channel.basicPublish("direct_logs", severity , null, SerializationUtils.serialize(object));
System.out.println(severity+":Send '"+object+"'");
}
channel.close();
conn.close();
}
private static String getSeverity(){
String[] severities=new String[]{"info","warn","error"};
Random random=new Random();
return severities[random.nextInt(3)];
}
public static void main(String[] args) throws Exception {
sendAToB("Hello World !");
}
}
package com.demo.mq.rabbitmq.example04;
import java.io.IOException;
import java.util.Random;
import org.apache.commons.lang3.SerializationUtils;
import com.demo.mq.rabbitmq.MqManager;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Consumer;
import com.rabbitmq.client.DefaultConsumer;
import com.rabbitmq.client.Envelope;
/**
* 接收消息类
* @author sheungxin
*
*/
public class Recv {
/**
* 用于接收消息,创建一个临时队列,绑定在转发器direct上,并指定routingKey
* @param queue
* @throws Exception
*/
public static void recvAToB() throws Exception{
Connection conn=MqManager.newConnection();
Channel channel=conn.createChannel();
channel.exchangeDeclare("direct_logs", "direct");
//创建一个临时队列
String queueName=channel.queueDeclare().getQueue();
//绑定临时队列和转发器logs
String severity=getSeverity();
channel.queueBind(queueName, "direct_logs", severity);
System.out.println(severity+":Received ...");
Consumer consumer=new DefaultConsumer(channel){
@Override
public void handleDelivery(String consumerTag,Envelope envelope,AMQP.BasicProperties properties,byte[] body) throws IOException{
String mes=SerializationUtils.deserialize(body);
System.out.println(envelope.getRoutingKey()+":Received :'"+mes+"' done");
}
};
//关闭自动应答机制,默认开启;这时候需要手动进行应该
channel.basicConsume(queueName, true, consumer);
}
private static String getSeverity(){
String[] severities=new String[]{"info","warn","error"};
Random random=new Random();
return severities[random.nextInt(3)];
}
public static void main(String[] args) throws Exception {
recvAToB();
}
}
分享到:
相关推荐
基于asp.net的教师授课系统设计与实现.docx
精简博客系统-精简博客系统-精简博客系统-精简博客系统-精简博客系统-精简博客系统-精简博客系统-精简博客系统-精简博客系统-精简博客系统-精简博客系统-精简博客系统 1、资源说明:精简博客系统源码,本资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 2、适用人群:计算机相关专业(如计算计、信息安全、大数据、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工等学习者,作为参考资料,进行参考学习使用。 3、资源用途:本资源具有较高的学习借鉴价值,可以作为“参考资料”,注意不是“定制需求”,代码只能作为学习参考,不能完全复制照搬。需要有一定的基础,能够看懂代码,能够自行调试代码,能够自行添加功能修改代码。 4. 最新计算机软件毕业设计选题大全(文章底部有博主联系方式): https://blog.csdn.net/2301_79206800/article/details/135931154 技术栈、环境、工具、软件: ① 系统环境:Windows ② 开发语言:Java ③ 框架:SpringBoot ④ 架构:B/S、MVC ⑤ 开发环境:IDE
基于asp.net的客户资源管理系统设计与实现.docx
嵌入式系统是集成了计算机硬件和软件的专用计算系统,广泛应用于各种设备和行业,如家电、汽车、医疗设备和工业自动化等。嵌入式开发涉及
该项目是一款基于若依3.8.7版本的Java+Vue全栈框架设计源码,包含609个文件,涵盖259个Java源文件、95个Vue组件、87个SVG文件、76个JavaScript文件、28个XML配置文件、13个Vue模板文件、9个SCSS样式文件、7个批处理文件、5个YAML配置文件、4个PNG图片文件。该源码集成了lombok、knife4j、mybatis-plus等实用库,并需自行掌握具体实现细节。
本项目是一款基于React、Ant Design、Dva、Umi框架构建的SpringBlade前端UI系统源码,旨在快速开发企业级中后台业务。项目包含536个文件,涵盖329个JavaScript文件、74个Markdown文件、61个LESS样式文件、38个TypeScript文件、10个JSON配置文件、4个YAML配置文件、4个PNG图片文件以及少量其他配置和忽略文件。该系统适用于快速构建高效的中后台界面,官网信息可访问:https://bladex.cn
VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip
浏览器中的向量库+RAG搜索
青年公寓服务平台-青年公寓服务平台-青年公寓服务平台-青年公寓服务平台-青年公寓服务平台-青年公寓服务平台-青年公寓服务平台-青年公寓服务平台-青年公寓服务平台-青年公寓服务平台-青年公寓服务平台-青年公寓服务平台 1、资源说明:青年公寓服务平台源码,本资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 2、适用人群:计算机相关专业(如计算计、信息安全、大数据、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工等学习者,作为参考资料,进行参考学习使用。 3、资源用途:本资源具有较高的学习借鉴价值,可以作为“参考资料”,注意不是“定制需求”,代码只能作为学习参考,不能完全复制照搬。需要有一定的基础,能够看懂代码,能够自行调试代码,能够自行添加功能修改代码。 4. 最新计算机软件毕业设计选题大全(文章底部有博主联系方式): https://blog.csdn.net/2301_79206800/article/details/135931154 技术栈、环境、工具、软件: ① 系统环境:Windows ② 开发语言:Java ③ 框架:SpringBo
基于C#实现的视频点播系统设计(源代码+文档).zip
iso-20集装箱运输拖车挂车3D数模图纸 STEP格式.zip
中文界面设置方法为: 上方设置栏-Options-Preferences-Language-简体中文 软件介绍: 支持几乎所有视频格式的转换,基本的有DVD, AVI, MP4, 3GP, WMV, ASF等格式。对于一些特殊格式的视频,不用担心看不到,有了XMedia Recode除了保证转换质量,还能转换为你想要的类型。软件功能:视频部分剪切使用自由选择框颜色(填充)色彩校正(亮度,对比度,伽玛值,色调,饱和度)拖放视频编码器直接选择图片大小(1:1,3:2,4:3,5:4,5:6,11:9,16:9,16:10,2.21:1)变焦(没有信箱,媒体,Pan Scan,适合屏幕)直接流复制功能2 – pass编码体积校正音量标准化帧率,比特率,分辨率可调节可以从大多数视频流格式的音频,提取创建 Pocket PC 的DVD 复制创建您的手机套 DVD创造了 iPod 和 iPhone 套 DVD创建为 PSP 和 PS3 的 DVD 支持格式:3GP in AVI, 3GP in FLV, 3GP in MP4, 3GP in MKV, 3GP in MOV.......
该项目是一款基于D语言的STM32F401单片机操作库mculib4d设计源码,总计包含129个文件。其中,D语言文件占80个,JSON、PDF、SVD、D_、LD、Gitignore、Conf和MD文件分别有14、5、5、4、4、3、2和2个。该库旨在以原生ARM操作为特色,通过简化调用和通用封装,极大简化单片机编程过程。目前,该库已在STM32F401上通过验证,旨在为单片机编程提供便捷高效的解决方案。
高考技术-pandas使用
对应chrome版本:129.0.6668.71 系统环境:win32 内容概述:ChromeDriver.exe是一款实用的Chrome浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作,在使用时需要与对应的Chrome浏览器版本匹配【理论上大版本匹配即可,即是129.0.xxxx.xx的浏览器,只需下载129版的chromedriver】,否则无法驱动。 应用场景:网络爬虫、自动化测试、web自动化,例如与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化,实现自动访问、自动输入、自动点击、自动发送等操作。 需要注意,这个驱动只适用于谷歌浏览器Chrome。 如果不知道浏览器的版本号,可以在浏览器的地址栏,输入chrome://version/,回车后即可查看到对应版本,如128.0.6613.138,即可下载对应的128的版本进行使用。
堆排序 五分钟看懂一个高难度的排序:堆排序
该项目是一款以Java为核心开发的古树资源管理与监测系统源码,总计包含105个文件,其中63个为Java源代码,13个为XML配置文件,5个为Git忽略规则文件,以及少量其他类型的文件,如属性文件、命令文件和元数据文件等。
基于asp.net的售后服务系统设计与实现.docx
2023-04-06-项目笔记-第二百六十九阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.267局变量的作用域_267- 2024-09-27
松鼠聚合直播系统是一套团队自主研发、源码开源,可自由二次开发的直播系统。 系统融和电商商城、网红热点、娱乐竞技直播等,能够快速实现吸粉引流, 集合在线直播、互动分享、社交传播等一体化功能,实现“直播+”的效果最大化运营需求。