Publish/Subscribe 发布与订阅:

通过交换机来实现,一个生产者可以让不同队列的消费者同时得到消息
生产者:

package Fanout;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import utils.RabbitMqUtils;
import java.io.IOException;
public class Provider {public static void main(String[] args) throws IOException {Connection connection = RabbitMqUtils.getConnection();Channel channel = connection.createChannel();channel.exchangeDeclare("logs","fanout");//创建交换机 1.交换机名称 2.交换机类型channel.basicPublish("logs","",null,"hello exchanges".getBytes());RabbitMqUtils.closeConnectionAndChannel(channel,connection);}
}

多个消费者在不同的队列中:
消费者1:

package Fanout;
import com.rabbitmq.client.*;
import utils.RabbitMqUtils;
import java.io.IOException;
public class Consumer {public static void main(String[] args) throws IOException {Connection connection = RabbitMqUtils.getConnection();Channel channel = connection.createChannel();channel.exchangeDeclare("logs","fanout");//可以再次声名队列,有就调用 没有才创建 相当于绑定String queueName = channel.queueDeclare().getQueue();//声名临时队列 不指定具体队列// channel.exchangeBind("logs",queueName,"fanout");//绑定队列channel.queueBind(queueName,"logs","");//1.队列名 2.交换机名 3.routing keychannel.basicConsume(queueName,true,new DefaultConsumer(channel){@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("消费者1---"+new String(body));}});}
}

消费者2:

package Fanout;
import com.rabbitmq.client.*;
import utils.RabbitMqUtils;
import java.io.IOException;
public class Consumer1 {public static void main(String[] args) throws IOException {Connection connection = RabbitMqUtils.getConnection();Channel channel = connection.createChannel();channel.exchangeDeclare("logs","fanout");//可以再次声名队列,有就调用 没有才创建 相当于绑定String queueName = channel.queueDeclare().getQueue();//声名临时队列// channel.exchangeBind("logs",queueName,"fanout");//绑定队列channel.queueBind(queueName,"logs","");//1.队列名 2.交换机名 3.routing keychannel.basicConsume(queueName,true,new DefaultConsumer(channel){@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("消费者3---"+new String(body));}});}
}

Publish/Subscribe 发布与订阅模式相关推荐

  1. 译: 3. RabbitMQ Spring AMQP 之 Publish/Subscribe 发布和订阅

    在第一篇教程中,我们展示了如何使用start.spring.io来利用Spring Initializr创建一个具有RabbitMQ starter dependency的项目来创建spring-am ...

  2. RabbitMQ Tutorials 3 - Publish/Subscribe 发布/订阅

    发布/订阅 分发一个消息给多个消费者(consumers).这种模式被称为"发布/订阅". 为了描述这种模式,我们将会构建一个简单的日志系统.它包括两个程序--第一个程序负责发送日 ...

  3. 【RabbitMQ】基础三:发布与订阅模式(Publish/Subscribe)

    [RabbitMQ]基础三:发布与订阅模式(Publish/Subscribe) 1. 订阅模式 2. 发布与订阅模式说明 3. 代码示例 3.1 生产者 3.2 消费者 3.3 测试 4. 总结 1 ...

  4. RabbitMQ工作模式Publish/Subscribe发布订阅,test测试代码

    RabbitMQ有以下几种工作模式 : 1.Work queues  工作队列 2.Publish/Subscribe 发布订阅 3.Routing      路由 4.Topics        通 ...

  5. php订阅系统,php redis pub/sub(Publish/Subscribe,发布/订阅的信息系统)之基本使用

    一.场景介绍 最近的一个项目需要用到发布/订阅的信息系统,以做到最新实时消息的通知.经查找后发现了redis pub/sub(发布/订阅的信息系统)可以满足我的开发需求,而且学习成本和使用成本也比较低 ...

  6. 知方可补不足~SQL2008中的发布与订阅模式~续

    上一回介绍了如何在sql2008中建立一个数据库的发布者,今天来说一下如何建立一个订阅者,其实订阅者也是一个数据库,而这个数据库是和发布者的数据结构相同的库,它们之间通过SQL代理进行数据上的同步. ...

  7. Redis发布与订阅模式

    Redis的Pub/Sub实现了发布/订阅消息范式,发布者将消息发布到不同的频道,订阅者订阅感兴趣的频道消息,而不需要关心是谁在发布.这种发布者和订阅者的解耦合方式可以极大的扩展的扩展性网络拓扑. 为 ...

  8. React中发布与订阅模式

    一,用处 当我们想要父组件传值给子组件时,通常会使用props传值. 子组件传值给父组件时,通常会子组件中的事件触发一个回调函数(也是props),父组件中的对应函数再去修改值. 兄弟组件间传值,我通 ...

  9. redis的发布和订阅模式

    **开启:**以MULTI开始一个事务 **入队:**将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列中 **执行:**又EXEC命令触发事务 **redis的发布订阅: ...

最新文章

  1. LeetCode--023--合并K个排序链表
  2. c语言编码表白,C语言告白代码,一闪一闪亮晶晶~
  3. 苹果iPhone被曝跟踪用户位置信息(图)
  4. aspose 换行写_aspose.word 换行符 aspose.words换行符
  5. mybatis中的多对一的查询
  6. 华为鸿蒙消费者,王成录谈鸿蒙挑战和华为消费者业务崛起
  7. 每天都有所收获_使技术保持最新状态会有所收获
  8. 2018专转本计算机百度云资源,2018年江苏专转本计算机真题版
  9. Flutter实战之图片圆角和圆形简单实现
  10. 微信小程序开发--【Hello World 及代码结构】(二)
  11. 破解StarUML4.1.6
  12. Google Earth自动生成地形
  13. Centos 6.6安装chrome 谷歌浏览器
  14. 如何在 XMind 中输入数学方程?LaTeX 简易入门
  15. poj3426(网络流)
  16. java JVM调优总结 -Xms -Xmx -Xmn -Xss
  17. 几种抠象技术理论试验-1 (Luma-Key,Chroma-Key)
  18. 面向对象(继承,多态,单态,魔术方法)
  19. [MySQL]学生表、教师表、课程表、授课表、成绩表的多表查询案例(1)
  20. 企业员工活动打卡收集照片、收集视频的小程序

热门文章

  1. linux串口助手开发,linux下QT开发串口通信助手
  2. 西电A测:串口通信仿真
  3. esp8266 防掉线方法_ESP8266 MQTT断线重连问题
  4. IDEA修改编码配置笔记
  5. php stomp rabbitmq,rabbitmq stomp 安装配置 -- kkito的博客
  6. CVPR 2021 | 视觉推理解释框架VRX:用结构化视觉概念作为解释网络推理逻辑的「语言」...
  7. CentOS系统主机每日巡检脚本
  8. 青葱岁月里我拥有了人生第一台电脑
  9. HTML5入门之无序列表
  10. Red-Blue Operations (Hard Version)