fanout(扇出模型)

在广播的流程下,消息发送的流程如下:

  • 可以有多个消费者。

  • 每个消费者有自己的queue(队列)。

  • 每个队列都要绑定到Exchange(交换机)。

  • 生产者发送的消息,只能发送到交换机,交换机来决定要发给哪个队列,生产者也无法决定。

  • 交换机把消息发送给绑定过的所有队列

  • 所有的消费者都能拿到消息,实现一个消息被多个消费者消费

1.生产者

public class Provider {public static void main(String[] args) throws IOException {Connection connection = RabbitMqUtil.getConnection();Channel channel = connection.createChannel();//将通道声明指定交换机 参数1:指明交换机名称  参数2:交换机的类型 fanout广播类型channel.exchangeDeclare("fanoutexchange","fanout");//发送消息channel.basicPublish("fanoutexchange","",null,"hello fanout exchange".getBytes());//释放资源RabbitMqUtil.closeConnectionAndChannel(channel,connection);}
}

2.消费者

public class Consumer1 {public static void main(String[] args) throws IOException {//获取连接对象Connection connection = RabbitMqUtil.getConnection();//获取连接通道Channel channel = connection.createChannel();//通道绑定交换机channel.exchangeDeclare("fanoutexchange","fanout");//临时队列String queueName = channel.queueDeclare().getQueue();//绑定交换机和队列channel.queueBind(queueName,"fanoutexchange","");channel.basicConsume(queueName,true,new DefaultConsumer(channel){@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("consumer1得到:"+new String(body));}});//注意这里不能关闭通道和连接,因为要一直监听}
}

3.结果分析

        扇出模型,我们发现生产者生产一个消息,通过扇出传播三个消费者都能获取到消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/313271.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROS安装PR2

一、PR2介绍 PR2是Willow Garage公司设计的机器人平台,也是目前科研领域经常用到的机器人之一。PR2有两条手臂,每条手臂七个关节,手臂末端是一个可以张合的夹爪;PR2依靠底部的四个轮子移动,在头部、胸部、肘部、夹爪上…

win11 电脑睡眠功能失效了如何修复 win11 禁止鼠标唤醒

1、win11睡眠不管用怎么办,win11电脑睡眠功能失效了如何修复 在win11系统中拥有许多令人激动的新功能和改进,有些用户在使用win11电脑时可能会遇到一个问题:睡眠模式不起作用。当他们尝试将计算机置于睡眠状态时,却发现系统无法进…

使用WAZUH检测LD_PRELAOD劫持、SQL注入、主动响应防御

目录 1、检查后门 使用工具检测后门 1.chkrootkit 2.rkhunter 手动检查文件 检查ld.so.preload文件 2、检测LD_PRELOAD ubuntu配置 wazuh配置 3、检测SQL注入 ubuntu配置 攻击模拟 4、主动响应 wauzh的安装以及设置代理可以参考本篇:WAZUH的安装、设置…

视频合并软件,重塑你的创意世界

在数字化的世界里,视频已经成为了我们表达自我、传递信息的重要方式。而合并视频,更是将这种表达推向了一个新的高度。通过简单的操作,我们不仅能够将不同的视频完美地融合在一起,更能赋予它们全新的含义。 所需工具:…

第四部分 一维连续型随机变量

目录 温馨提示: 已知fx(X)求概率 方法: 例1 例2 求fx(X)中的未知数 方法: 例3 已知 fx(X)求F 方法: 例4 求F中的未知数 方法: 例5 已知F求f 方法: 例6 已知f求f 方法: 普通求法: 公…

第二十六周:学习笔记

第二十六周:学习笔记 摘要Abstract全卷积网络 FCN1. CNN 与 FCN2. 全连接层 --> 成卷积层3. FCN的缺点 摘要 全卷积神经网络(Fully Convolutional Network,FCN)是一种用于图像分割和语义分割任务的深度学习模型。与传统的卷积…

微信小程序发送模板消息-详解【有图】

前言 在发送模板消息之前我们要首先搞清楚微信小程序的逻辑是什么,这只是前端的一个demo实现,建议大家在后端处理,前端具体实现:如下图 1.获取小程序Id和密钥 我们注册完微信小程序后,可以在开发设置中看到以下内容&a…

C语言之分支与循环【附6个练习】

文章目录 前言一、什么是语句?1.1 表达式语句1.2 函数调用语句1.3 控制语句1.4 复合语句1.5 空语句 二、分支语句(选择结构)2.1 if语句2.1.1 悬空else2.1.2 练习(1. 判断一个数是否为奇数 2. 输出1-100之间的奇数) 2.2…

Vue中目录以及文件内容简单分析

src文件下目录分析&#xff1a; App.vue文件中内容&#xff1a; vue文件中基本的三个结构&#xff0c;template&#xff08;结构&#xff09;、script&#xff08;行为&#xff09; 、style&#xff08;样式&#xff09;。 <template><!-- html结构 --><div cl…

【瞎折腾/3D】无父物体下物体的旋转与移动

目录 说在前面移动World SpaceLocal Space 旋转World SpaceLocal Space 代码 说在前面 测试环境&#xff1a;Microsoft Edge 120.0.2210.91three.js版本&#xff1a;0.160.0其他&#xff1a;本篇文章中只探讨了无父对象下的移动与旋转&#xff0c;有父对象的情况将在下篇文章中…

打破数据孤岛:ChatGPT如何打通金融大数据的任督二脉?

文章目录 一、引言二、ChatGPT与金融大数据分析的融合三、实践应用&#xff1a;ChatGPT在金融大数据分析中的优势与挑战四、案例分析&#xff1a;ChatGPT在金融大数据分析中的应用案例五、前景展望&#xff1a;ChatGPT在金融大数据分析领域的未来发展《AI时代Python金融大数据分…

ShuffleNet V2:高效CNN架构设计实用指南

摘要 目前&#xff0c;神经网络架构设计主要以计算复杂度的间接指标&#xff08;即 FLOPs&#xff09;为指导。然而&#xff0c;直接指标&#xff08;如速度&#xff09;还取决于其他因素&#xff0c;如内存访问成本和平台特性。因此&#xff0c;这项工作建议在目标平台上评估…