首页 > 其他分享 >RabbitMQ入门学习系列(四) 发布订阅模式

RabbitMQ入门学习系列(四) 发布订阅模式

时间:2022-11-25 17:05:34浏览次数:49  
标签:订阅 入门 exchange 队列 RabbitMQ 生产者 fanout 消息 类型


什么时发布订阅模式

把消息发送给多个订阅者。也就是有多个消费端都完整的接收生产者的消息

换句话说 把消息广播给多个消费者

消息模型的核心

RabbitMQ不发送消息给队列,生产者也不知道消息发送到队列

生产者只发送消息到exchange 交换器,

exchange一方面从生产者接收消息,另一方面把消息推送到队列中。

exchange必须知道如何处理接收到的消息 。是加到特定队列中,还是添加到多个队列中,还是放弃。这个是由他的类型来决定 。

而消息的类型有四种,分别是


fanout消息类型

fanout消息类型可以把消息广播到所有队列中。

指定exchange的名称为logs,routingkey设置为空。



为队列的名称指定一个随机数



经过对之前代码的改造

我们定义了一个可以广播类型的exchange和一个随机名字的队列 ,

现在我们需要把他们绑定起来。



生产者的代码

  1. 创建连接
  2. 创建信道
  3. 声明类型为fanout的消息
  4. publish发送消息


消费者代码

  1. 创建连接
  2. 创建信道
  3. 声明类型为fanout的消息
  4. 声明一个队列
  5. 把队列然后绑定到信道上
  6. 接收消息

测试结果

启了一个生产者,两个消费者,生产者发送10条消息 ,两个消费者都收到了10条消息

RabbitMQ入门学习系列(四) 发布订阅模式_消息发送

友情提示

我对我的文章负责,发现好多网上的文章 没有实践,都发出来的,让人走很多弯路,如果你在我的文章中遇到无法实现,或者无法走通的问题。可以直接在公众号《爱码农爱生活 》留言。必定会再次复查原因。让每一篇 文章的流程都能顺利实现。



标签:订阅,入门,exchange,队列,RabbitMQ,生产者,fanout,消息,类型
From: https://blog.51cto.com/u_15834343/5887043

相关文章

  • RabbitMQ简介
            RabbitMQ是一种消息队列,用于常见的进程通信。支持点对点,请求应答和发布订阅模式并且提供多种语言的支持。常见的java,c#,php都支持。常被用在异步处理,应用......
  • RabbitMQ入门学习系列(二),单生产者消费者
    友情提示我对我的文章负责,发现好多网上的文章没有实践,都发出来的,让人走很多弯路,如果你在我的文章中遇到无法实现,或者无法走通的问题。可以直接在公众号《爱码农爱生活》......
  • centos7安装rabbitmq3.9.16
    下载erlangwget--content-disposition--no-check-certificatehttps://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.11-1.el7.x86_64.rpm/download.......
  • 导数入门指北
    一,极限1.极限的定义如果一个变量\(y\)能够无限趋近于一个常量\(a\),那么就可以说\(y\)的极限是\(a\)。无限趋近是指:\(y\)在变化过程中不断逼近\(a\),且\(|y-......
  • Python入门(11)——文件和异常
    在开发中经常要对数据进行持久化操作,实现数据持久化最直接的方式就是将数据保存到文件中。在Python中实现文件的读写操作非常简单,通过Python内置的函数,就可以获得操作文......
  • Linux基础-Vim(一)入门和常用命令
    ps:这是本公众号第一篇推文,小白第一次写作,希望大家支持,如有错误,望批评指正。在所有的UNIX-Like系统中都会内建vi文本编辑器,vi是老式的文本编辑器,其他的文本编辑器则不一定会......
  • 重学c#系列——订阅发布与事件[二十六]
    前言简单介绍一下订阅发布与事件。正文先来看一下委托的订阅与发布。publicdelegatevoidTestDelegate();publicclassCat{ publicTestDelegatetestDelegate;......
  • Python入门(9)——函数
    函数是带名字的代码块,用于完成特定的任务,当在程序中多次执行同一任务时,无需反复编写重复的代码块,只需调用执行该任务的函数即可。函数的声明    在Python中使用 def ......
  • Python入门(10)——类
    在Python中,一切都是对象,对象是类的实例,类是对象的蓝图和模板。类是一个抽象的概念,对象是一个类具体的实例。每个对象都有属性和行为,它们都是独一无二的,而且对象一定属于某个......
  • Python入门(8)——集合
    集合的创建    集合是由不重复元素组成的无序容器。创建集合用 {} 大括号或 set() 函数。注意,创建空集合只能用 set() ,不能用 {} , {} 创建的是空字典。......