rabbitMQ的direct模式的生产者与消费者使用案例

消费者C1的RoutingKey 规则按照info warn 两种RoutingKey匹配 绑定队列console
package com.esint.rabbitmq.work03;import com.esint.rabbitmq.RabbitMQUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.DeliverCallback;/*** 消费者01的消息接受*/
public class ReceiveLog01 {public static final String EXCHANGE_NAME = "logs";public static void main(String[] args) throws Exception {//获取信道Channel channel = RabbitMQUtils.getChannel();//声明一个交换机channel.exchangeDeclare(EXCHANGE_NAME,"fanout");/***声明一个队列 队列名字随机* 消费者断开与队列的链接后 队列自动删除*/String queue = channel.queueDeclare().getQueue();/*** 绑定交换机与队列* 1.队列名字*/channel.queueBind(queue,EXCHANGE_NAME,"");System.out.println("wait print message...");DeliverCallback deliverCallback = (var,var2)->{System.out.println("01:"+new String(var2.getBody()));};channel.basicConsume(queue,true,deliverCallback, var->{});}
}
消费者C2的RoutingKey 规则按照error RoutingKey匹配 绑定队列disk
package com.esint.rabbitmq.work03;import com.esint.rabbitmq.RabbitMQUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.DeliverCallback;/*** 消费者02的消息接受*/
public class ReceiveLog02 {public static final String EXCHANGE_NAME = "logs";public static void main(String[] args) throws Exception {//获取信道Channel channel = RabbitMQUtils.getChannel();//声明一个交换机channel.exchangeDeclare(EXCHANGE_NAME,"fanout");/***声明一个队列 队列名字随机* 消费者断开与队列的链接后 队列自动删除*/String queue = channel.queueDeclare().getQueue();/*** 绑定交换机与队列* 1.队列名字*/channel.queueBind(queue,EXCHANGE_NAME,"");System.out.println("wait print message...");DeliverCallback deliverCallback = (var,var2)->{System.out.println("02:"+new String(var2.getBody(),"UTF-8"));};channel.basicConsume(queue,true,deliverCallback, var->{});}
}
生产者发送 基于下面调试程序改变参数RoutingKey 切换info warn error 可以观察两个生产者的不同数据接收
package com.esint.rabbitmq.work03;import com.esint.rabbitmq.RabbitMQUtils;
import com.rabbitmq.client.Channel;import java.util.Scanner;public class EmitLog {public static final String EXCHANGE_NAME = "logs";public static void main(String[] args) throws Exception {Channel channel = RabbitMQUtils.getChannel();//声明交换机channel.exchangeDeclare(EXCHANGE_NAME,"fanout");Scanner scanner = new Scanner(System.in);while(scanner.hasNext()){String mes = scanner.next();channel.basicPublish(EXCHANGE_NAME,"",null,mes.getBytes("UTF-8"));System.out.println("生产者发出消息:"+mes.toString());}}
}相关文章:
rabbitMQ的direct模式的生产者与消费者使用案例
消费者C1的RoutingKey 规则按照info warn 两种RoutingKey匹配 绑定队列console package com.esint.rabbitmq.work03;import com.esint.rabbitmq.RabbitMQUtils; import com.rabbitmq.client.Channel; import com.rabbitmq.client.DeliverCallback;/*** 消费者01的消息接受*/ p…...
分布式应用服务拆分
需求落地分布式应用服务 将需求转化为分布式应用服务的过程可以按照以下步骤进行: 理解需求:首先,你需要仔细阅读和理解业务需求。与相关的利益相关者(如业务分析师、产品经理等)进行沟通,确保你对需求的理…...
matplotlib 绘制双纵坐标轴图像
效果图: 代码: 由于使用了两组y axis,如果直接使用ax.legend绘制图例,会得到两个图例。而下面的代码将两个图例合并显示。 import matplotlib.pyplot as plt import numpy as npdata np.random.randint(low0,high5,size(3,4)) …...
74基于matlab的PSO-ELM的多输入,单输出结果预测,输出训练集和测试机预测结果及误差。
基于matlab的PSO-ELM的多输入,单输出结果预测,输出训练集和测试机预测结果及误差,适应度值。数据可更换自己的,程序已调通,可直接运行。 74matlabPSO-ELM多输入单输出 (xiaohongshu.com)...
shell之head命令
head命令 head命令是UNIX和Linux环境中常用的命令,用于在标准输出上显示文件的开头内容。 具体来说,head命令默认会显示给定文件开头的10行内容。如果指定了多个文件名,head命令会逐个显示每个文件的开头内容,并在每个文件显示的…...
网络安全之了解安全托管服务(MSS)
数字化已深入千行百业。数字化将给各行各业带来巨大的变化,现实世界和虚拟世界也将联系得更加紧密。随着云计算、大数据等新技术结合企业级业务的落地,数字时代的安全面临着前所未有的新挑战。近年来,网络安全问题日益严重,在企业…...
linux进程间通信之共享内存(mmap,shm_open)
共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进 程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空间中,…...
C/C++---------------LeetCode第1748.唯一元素的和
唯一元素的和 题目及要求哈希算法暴力算法在main里使用 题目及要求 给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。 请你返回 nums 中唯一元素的 和 。 示例 1: 输入:nums [1,2,3,2] 输出:4 解释:唯…...
什么是好用的HR人才测评?
对于HR来说,选用一个合适的测评工具,我想不外乎以下几点: 1、成本可控 不是所有的HR都能申请到足够的资金,去做专业的人才测评,尤其是中小企业,这可是一笔不小 的开支。即使是基层普通岗位的成本…...
【ARM Trace32(劳特巴赫) 使用介绍 5 -- Trace32 scan dump 详细介绍】
文章目录 1.1 JTAG 测试逻辑架构1.2 D型扫描触发器1.2.1 全扫描介绍1.3 IR 寄存器1.4 TDR(Test data registers)1.4.1 TDR 的实现1.4.1.1 Bypass Register1.4.1.2 Boundary-scan register1.5 Scan Dump1.5.1 soft fusion1.1 JTAG 测试逻辑架构 图 1-1 片上测试逻辑概念图 如前面…...
Java版B/S架构云his医院信息管理系统源码(springboot框架)
一、技术框架 ♦ 前端:AngularNginx ♦ 后台:JavaSpring,SpringBoot,SpringMVC,SpringSecurity,MyBatisPlus,等 ♦ 数据库:MySQL MyCat ♦ 缓存:RedisJ2Cache ♦ 消息队…...
面试经典(2/150)移除元素
面试经典(2/150)移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要…...
基于JavaWeb+SpringBoot+掌上社区疫苗微信小程序系统的设计和实现
基于JavaWebSpringBoot掌上社区疫苗微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种…...
python_主动调用其他类的成员
# 主动调用其他类的成员 # 方式一: class Base(object):def f1(self):print("5个功能") class Foo(object):def f1(self):print("3个功能")# Base.实例方法(自己传self),与继承无关Base.f1(self)obj Foo() obj.f1()print("#"*20)# 方式二:按照类…...
Pytorch部分报错问题
一、存在问题 1.链接库报错 问题报错:undefined symbol: __nvJitLinkAddData_12_1, version libnvJitLink.so.12 2.GPU不能使用 问题报错:在torch安装后测试gpu是否可用 torch.cuda.is_available() false 返回false 问题分析: 可能是…...
cmmlu数据处理
cmmlu数据处理 数据处理数据地址代码解析数据处理 from glob import glob import pandas as pd from tqdm import tqdmtrain_data_path_list = glob("test/*") val_data_path_list = glob("dev/*") tran_data = pd.<...
【ARM Trace32(劳特巴赫) 使用介绍 2.2 -- TRACE32 进阶命令之 DIAG 弹框命令】
请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 上篇文章:【ARM Trace32(劳特巴赫) 使用介绍 2.1 – TRACE32 Practice 脚本 cmm 脚本学习】 下篇文章:【ARM Trace32(劳特巴赫) 使用介绍 3 - trace32 访问运行时的内存】 文章目录 DIALOG.OK 命令DIA…...
黑马程序员微服务 分布式搜索引擎3
分布式搜索引擎03 0.学习目标 1.数据聚合 **聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售…...
Python正则表达式学习笔记(入门)
1. 介绍 正则表达式是一种强大的模式匹配工具,用于处理文本数据。在Python中,我们使用re模块来操作正则表达式。 2. 基本语法 建议先看 "5. re模块函数"了解search和match的区别"和 2.3 特殊字符转义"了解如何应对特殊符号 2.1 字…...
C++核心编程 day09 类型转换、异常、输入输出流
C核心编程 day09 类型转换、异常、输入输出流 1. 类型转换2. 异常2.1 异常语法2.2 C标准异常库 3. 输入输出流3.1 输入输出流概念以及流类库3.2 标准输入流3.3 标准输出流3.4 文件读写 1. 类型转换 C中的类型转换有四类,分别是静态转换、动态转换、常量转换、重新解…...
TalkiePCM:嵌入式LPC语音合成库,纯C++轻量级PCM音频引擎
1. TalkiePCM:嵌入式平台上的轻量级LPC语音合成引擎TalkiePCM 是一个面向资源受限嵌入式系统的纯C语音合成库,其核心目标是在不依赖特定硬件外设(如PWM、DAC或I2S控制器)的前提下,以最小耦合方式生成标准PCM音频流。它…...
当相机位姿已知:利用COLMAP从稀疏到稠密重建的实战指南
1. 环境准备与数据格式转换 在开始COLMAP重建之前,我们需要确保环境配置正确,并完成相机位姿数据的格式转换。COLMAP支持Windows、Linux和macOS系统,但为了获得最佳性能,建议使用配备NVIDIA显卡的机器,并安装CUDA加速版…...
102. 在控制平面主机名更改后恢复 Rancher 配置的 RKE2 集群
Environment 环境 Rancher provisioned RKE2 downstream cluster control plane node hostname changed, without removing the node from the cluster. Rancher 配置了 RKE2 下游集群控制平面节点的主机名更改,但未将该节点从集群中移除。 Procedure 程序It is …...
Hunyuan-MT-7B多语种能力:Pixel Language Portal在联合国六种官方语言互译中的表现
Hunyuan-MT-7B多语种能力:Pixel Language Portal在联合国六种官方语言互译中的表现 1. 引言:当像素冒险遇见多语言翻译 在全球化交流日益频繁的今天,语言障碍仍然是横亘在不同文化之间的无形壁垒。传统翻译工具往往给人冰冷、机械的使用体验…...
如何快速清理Windows 11臃肿:Win11Debloat完整优化指南
如何快速清理Windows 11臃肿:Win11Debloat完整优化指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and c…...
LibreCAD:完全免费的2D CAD软件终极指南,告别昂贵许可证
LibreCAD:完全免费的2D CAD软件终极指南,告别昂贵许可证 【免费下载链接】LibreCAD LibreCAD is a cross-platform 2D CAD program written in C17. It can read DXF/DWG files and can write DXF/PDF/SVG files. It supports point/line/circle/ellipse…...
Ostrakon-VL 模型推理加速实战:使用 .accelerate 库优化扫描速度
Ostrakon-VL 模型推理加速实战:使用 .accelerate 库优化扫描速度 1. 效果惊艳的开场 最近在测试Ostrakon-VL模型时,我发现了一个令人惊喜的事实:通过.accelerate库的几项简单优化,模型推理速度可以提升3倍以上,同时显…...
WSL+VSCode+Jupyter+R配置总结(2026年)
题记:网上相关的资料很多了,现阶段跟随AI也能少走很多弯路,但体验下来依旧有些细节没有被很好的提及,故写本文一方面作为自己的备忘录,一方面希望帮助更多像我一样的新手。 用了上述的配置跑了scanpy一年多了…...
电力系统输电线路距离保护建模与仿真:方向阻抗继电器探秘
1.电力系统输电线路距离保护的建模与仿真matlab/simulink仿真模型 2.方向阻抗继电器 (1)“0度接线”方向阻抗继电器的构造 (2)“相电压和具有K3I0补偿的相电流接线”的方向阻抗继电器模块的构造在电力系统中,输电线路距…...
从原理到代码:用Python实现简易变焦跟踪算法(OpenCV实战)
从原理到代码:用Python实现简易变焦跟踪算法(OpenCV实战) 在计算机视觉领域,变焦跟踪是一个既基础又关键的技术难题。想象一下,当你用手机拍摄远处景物时,镜头从广角切换到长焦的过程中,画面往往…...
