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

rabbitMQ的扇出模式(fanout发布订阅)的生产者与消费者使用案例

扇出模式 fanout 发布订阅模式
生产者

生产者发送消息到交换机(logs),控制台输入消息作为生产者的消息发送

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());}}
}

交换机如下:
在这里插入图片描述
发布者如下:
在这里插入图片描述

消费者

创建两个消费来同时消费生产者的发布消息。声明两个临时队列,与交换机做绑定,消费消息

消费者01
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->{});}
}
消费者02
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->{});}
}

两个临时队列:
在这里插入图片描述

运行测试生产者:
在这里插入图片描述

运行测试消费者:
在这里插入图片描述
在这里插入图片描述

相关文章:

rabbitMQ的扇出模式(fanout发布订阅)的生产者与消费者使用案例

扇出模式 fanout 发布订阅模式 生产者 生产者发送消息到交换机(logs),控制台输入消息作为生产者的消息发送 package com.esint.rabbitmq.work03;import com.esint.rabbitmq.RabbitMQUtils; import com.rabbitmq.client.Channel;import java.util.Scanne…...

VSCode打开Json 文件格式化

在VSCode中打开JSON文件时,你可以使用以下步骤来格式化JSON并显示为多行: 使用快捷键: 在打开的JSON文件中,使用快捷键格式化文档。 Windows/Linux:Shift Alt FmacOS:Shift Option F 右键菜单&#xff…...

【C++】:STL——标准模板库介绍 || string类

📚1.什么是STL STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且 是一个包罗数据结构与算法的软件框架 📚2.STL的版本 原始版本 Alexander Stepanov、Meng Lee 在…...

Python小白之PyCharm仍然显示“No module named ‘xlwings‘”

Python小白之“没有名称为xlwings‘的模块”-CSDN博客文章浏览阅读8次。cmd 打开命令行,输入python出现>>>的提示格,输入import xlwings 回车,正常报错:No module named xlwings。输入python 回车后,再输入im…...

在Uni-app中实现计时器效果

本文将介绍如何在Uni-app中使用Vue.js的计时器功能实现一个简单的计时器效果。 首先&#xff0c;我们需要创建一个包含计时器的组件。以下是一个基本的计时器组件示例&#xff1a; <template><div class"timer"><p>{{ formatTime }}</p><…...

Linux脚本shell中将Windos格式字符转换为unix

众所周知&#xff0c;windos的文档直接复制到linux服务器上去&#xff0c;是需要进行格式转换的&#xff0c;否则可能出现以下报错&#xff1a; 解决方法&#xff1a; vim 脚本 输入 :set ff ##会显示字符格式 :set ffunix ##转换为unix格式 :wq ##保存退出...

【分布式】MIT 6.824 Lab 2B实现细节分析

基于6.824 2020版 http://nil.csail.mit.edu/6.824/2020/schedule.html Lab 2A&#xff08;选举&#xff09;一天就完成了&#xff0c;主要是第一次开始写Raft需要稍微熟悉一下&#xff0c;但是几乎不用修改&#xff0c;很容易就通过了。不过到了Lab 2B就会发现2A能够通过纯属侥…...

MySql 数据库初始化,创建用户,创建数据库,授权

登录MySQL&#xff08;使用管理员账户&#xff09; mysql -u root -p 设置用户 -- 创建用户并设置密码 CREATE USER user_name% IDENTIFIED BY user_password;-- 删除用户 drop user user_name; 设置数据库 -- 创建数据库 CREATE DATABASE database_name;-- 删除数据库 DR…...

【洛谷算法题】P5712-Apples【入门2分支结构】

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5712-Apples【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格式&…...

vue项目中的js文件使用vuex

使用场景&#xff1a;假设有一个接口&#xff0c;需要在很多页面获取一遍并且将接口的返回值保存起来&#xff0c;这样就能使用vuex&#xff0c;将值保存在vuex中 实现&#xff1a;vuex中新建firmModule.js文件&#xff0c;编写存储值的代码&#xff0c;utils/getFirmData.js用…...

【Vue3】 computed 完整写法 全选反选 、计算商品总价

全选反选 const allCheck computed({get() {return buyCard.value.every(item > item.checkState)},set(val) {return buyCard.value.forEach(item > item.checkState val);},}); 计算商品总价格 const aggregatePrice computed(() > {const arr buyCard.value.f…...

Mindomo Desktop for Mac(免费思维导图软件)下载

Mindomo Desktop for Mac是一款免费的思维导图软件&#xff0c;适用于Mac电脑用户。它可以帮助你轻松创建、编辑和共享思维导图&#xff0c;让你的思维更加清晰、有条理。 首先&#xff0c;Mindomo Desktop for Mac具有直观易用的界面。它采用了Mac独特的用户界面设计&#xf…...

Spark资源规划-资源上线评估

1、总体原则 以单台服务器 128G 内存&#xff0c;32 线程为例。 先设定单个 Executor 核数&#xff0c;根据 Yarn 配置得出每个节点最多的 Executor 数量&#xff0c;每个节点的 yarn 内存/每个节点数量单个节点的数量 总的 executor 数单节点数量*节点数。 2、具体提交参数 …...

RT-Thread STM32F407 定时器

定时器简介 硬件定时器一般有 2 种工作模式&#xff0c;定时器模式和计数器模式。不管是工作在哪一种模式&#xff0c;实质都是通过内部计数器模块对脉冲信号进行计数。下面是定时器的一些重要概念。 计数器模式&#xff1a;对外部输入引脚的外部脉冲信号计数。 定时器模式&…...

C#asp.net考试系统+sqlserver

C#asp.net简易考试系统 sqlserver在线考试系统学生登陆 判断学生是否存在 选择课程名 科目 可以进行答题操作&#xff0c;已经考试的课程不能再次答题&#xff0c; 自动根据课程名对应的题库生成试卷界面 加入选项类容 说明文档 运行前附加数据库.mdf&#xff08;或sql生成数…...

mac上配置maven

本文简述mac book上的Maven环境配置&#xff0c;着重讲述不同点。 1.安装 下载解压后&#xff0c;首先配置环境变量。编辑~/.bash_profile文件。加入如下代码&#xff1a; export M2_HOME/Users/jackie/tools/apache-maven-3.8.1注意&#xff1a;“/Users/jackie/tools/apac…...

解决vue-cli node-sass安装不成功问题

在项目中安装 vue-cli node-sass不成功解决办法如下&#xff1a; npm install node-sass --save 若以上方式安装不成功&#xff08;安装超时&#xff09;, 则使用以下的方法&#xff1a; 1. npm install -g cnpm --registryhttps://registry.npm.taobao.org 2. cnpm in…...

【Mysql】Mysql内置函数介绍

&#x1f308;欢迎来到Python专栏 &#x1f64b;&#x1f3fe;‍♀️作者介绍&#xff1a;前PLA队员 目前是一名普通本科大三的软件工程专业学生 &#x1f30f;IP坐标&#xff1a;湖北武汉 &#x1f349; 目前技术栈&#xff1a;C/C、Linux系统编程、计算机网络、数据结构、Mys…...

【Linux】vscode远程连接ubuntu失败

VSCode远程连接ubuntu服务器 这部分网上有很多&#xff0c;都烂大街了&#xff0c;自己搜吧。给个参考连接&#xff1a;VSCode远程连接ubuntu服务器 注意&#xff0c;这里我提前设置了免密登录。至于怎么设置远程免密登录&#xff0c;可以看其它帖子&#xff0c;比如这个。 …...

如何设计开发一对一交友App吸引更多活跃用户

在当今社交媒体时代&#xff0c;一对一交友App开发正日渐成为发展热点。如何吸引更多活跃用户成为开发者们的首要任务。通过本文&#xff0c;我们将探讨一系列方法&#xff0c;助您设计开发一对一交友App&#xff0c;吸引更多用户的关注和参与&#xff0c;提升App的活跃度。 了…...

神马网站 SEO 优化对网站转化率的影响

神马网站 SEO 优化对网站转化率的影响 在当今互联网时代&#xff0c;网站的流量和转化率直接关系到企业的销售和品牌的知名度。仅仅拥有流量并不意味着一切都顺风顺水&#xff0c;如何把这些流量转化为实际的业务和销售&#xff0c;这就涉及到神马网站的SEO优化对网站转化率的…...

基于机器学习算法的亚马逊用户评论情感分析研究:深入探讨随机森林与决策树模型的应用及其实验评估

《基于随机森林和决策树的亚马逊用户评论情感分析研究》深入探讨了利用机器学习技术对亚马逊用户评论数据进行情感分析的方法&#xff0c;旨在为电商企业提供更精准的用户反馈处理工具&#xff0c;以辅助产品优化和服务改进 通过采用决策树模型和随机森林模型这两种不同的机器学…...

OpenClaw故障排除手册:千问3.5-9B连接问题大全

OpenClaw故障排除手册&#xff1a;千问3.5-9B连接问题大全 1. 开篇&#xff1a;为什么需要这份手册&#xff1f; 上周我在本地部署OpenClaw对接千问3.5-9B模型时&#xff0c;连续遇到了三个诡异的连接错误。每次报错都像在玩解谜游戏——错误信息含糊不清&#xff0c;社区讨论…...

实战指南:基于快马AI开发具备核心功能的电商比价插件

最近在做一个电商比价插件的开发项目&#xff0c;正好用到了InsCode(快马)平台&#xff0c;整个过程特别顺畅&#xff0c;分享下我的实战经验。 项目背景与需求分析 电商比价插件是很多网购达人的刚需工具。核心要解决三个问题&#xff1a;实时比价、历史价格追踪和降价提醒。传…...

高效搭建个人知识管理系统:基于kepano-obsidian的完整指南

高效搭建个人知识管理系统&#xff1a;基于kepano-obsidian的完整指南 【免费下载链接】kepano-obsidian My personal Obsidian vault template. A bottom-up approach to note-taking and organizing things I am interested in. 项目地址: https://gitcode.com/gh_mirrors/…...

告别ArcGIS依赖!用QGIS 3.28把SHP属性表一键导出Excel,附赠3个数据清洗小技巧

告别ArcGIS依赖&#xff01;用QGIS 3.28高效导出SHP属性表到Excel的完整指南 当你在处理地理空间数据时&#xff0c;是否曾因ArcGIS的复杂操作或高昂成本而感到困扰&#xff1f;QGIS作为一款开源GIS软件&#xff0c;不仅完全免费&#xff0c;还能轻松完成从基础到高级的空间数据…...

别再只用Chat了!深度挖掘Cursor的‘规则’与‘上下文’功能,打造你的专属AI编程助手

解锁Cursor的隐藏力量&#xff1a;从代码助手到项目级智能架构师 在AI编程工具爆发的时代&#xff0c;大多数开发者仅仅停留在基础对话和代码补全的层面。但Cursor的真正价值远不止于此——它能够成为你项目架构的智能协作者、团队规范的自动化执行者&#xff0c;以及复杂工程问…...

如何用开源工具实现专业级图像修复与纹理合成?揭秘GIMP Resynthesizer的技术奥秘

如何用开源工具实现专业级图像修复与纹理合成&#xff1f;揭秘GIMP Resynthesizer的技术奥秘 【免费下载链接】resynthesizer Suite of gimp plugins for texture synthesis 项目地址: https://gitcode.com/gh_mirrors/re/resynthesizer 在数字图像处理领域&#xff0c;…...

VisualCppRedist AIO:Windows系统运行库的一站式解决方案

VisualCppRedist AIO&#xff1a;Windows系统运行库的一站式解决方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist VisualCppRedist AIO是一个开源项目&#x…...

解锁Visual Studio中的图标编辑:.CUR文件的编辑指南

在软件开发中,图标是用户界面设计的重要组成部分。它们不仅能增强应用程序的美观度,还能提供直观的操作指引。然而,对于那些不熟悉Visual Studio环境的开发者来说,编辑图标文件可能遇到一些障碍。本文将详细介绍如何在Visual Studio中编辑.CUR文件,以及为什么默认情况下这…...