订阅发布者模式本质上也是一种生产者消费者模式,订阅者是消费者,发布者是生产者。如果一定要说个区别,就是抽象级别的区别吧。
订阅者肯定是个消费者,但消费者不一定是订阅者,发布者一定是个生产者,但生产者不一定是个发布者。
订阅发布者模式有时也称为观察者模式,订阅发布者(观察这和被观察者)存在着主动被动的关系,而生产者消费者比较中性吧。 订阅发布模式定义了一种一对多的依赖关系,让多个订阅者对象同时监听某一个主题对象。这个主题对象在自身状态变化时,会通知所有订阅者对象,使它们能够自动更新自己的状态。而生产者消费者关系可以是1对1,1对多,多对1,多对多关系
补充:在23种设计模式中的观察者模式中,并没有中间介-队列的概念,但生产者消费者模式再多线程环境下好像天生就有队列的概念。在订阅发布者之间引入消息队列后,可以实现订阅者和发布者之间的解耦,任务可以很好的以异步方式进行处理,所以说是否有中间队列不是订阅发布者模式和生产者消费者模式的区别
如下蓝色字体部分为参考内容:
如下摘自:http://www.codeceo.com/article/javascript-observer-pattern.html
那么到底什么是观察者模式呢. 先看看生活中的观察者模式。
好莱坞有句名言. “不要给我打电话, 我会给你打电话”. 这句话就解释了一个观察者模式的来龙去脉。 其中“我”是发布者, “你”是订阅者。
再举个例子,我来公司面试的时候,完事之后每个面试官都会对我说:“请留下你的联系方式, 有消息我们会通知你”。 在这里“我”是订阅者, 面试官是发布者。所以我不用每天或者每小时都去询问面试结果, 通讯的主动权掌握在了面试官手上。而我只需要提供一个联系方式。
相关推荐
并比较了两种模式:生产者-消费者模式和发布-订阅模式的区别。 包含的特性如下: 1.开启activeMQ,访问http://localhost:8080/demo 2.在项目中,我们为消息的生产者和发布者分别注册了两个消费者和订阅者,当有...
C# rabbitmq项目实战源码,在网上找了大量的MQ资料用C#语言开发的各种场景示例,从路由及列队的配置,到场景代码的开发,使用场景基本上都是通过生产者与消费者,发布订阅模式的示例,程序使用WindowForm开发的重要...
springboot与rabbitMQ集成,实现了三种发消息,即直接连模式,发布与订阅,主题模式。里面有详细的例子,以便以后使用。
- 发布/订阅模式用于将消息广播到多个消费者。每个消费者都有自己的队列,并且订阅相同的交换机。生产者发送消息到交换机,然后交换机将消息广播到所有与之绑定的队列,消费者从各自的队列中接收消息并处理。 这些...
并比较了两种模式:生产者-消费者模式和发布-订阅模式的区别。 包含的特性如下: 1.开启activeMQ,访问http://localhost:8080/demo 2 在项目中,我们为消息的生产者和发布者分别注册了两个消费者和订阅者,当有消息...
简单模式:生产者与消费者 Work模式:发布者与3个订阅者 Topic交换机:生产者与3个消费者 Fanout交换机:生产者与2个消费者 Direct交换机:产生者与两个消费者 RPC远程回调:客户端与服务端
分别实现生产者-消费者模式和发布-订阅模式,作为java编程发送消息和消费消息的基础示例。 源码主要包含如下内容: 1.spring boot配置初始化activeMQ 2.队列类型queue,生产者发送队列消息,以及消费者消费相关队列...
简单模式:一个生产者,一个消费者 工作模式:一个生产者,多个消费者 发布订阅模:又叫无路由键交换机模式,队列绑定到交换机,当发送消息到交换机时,绑定到该交换机的队列都会监听到 Direct模式:直连路由键...
简单的讲就是一种生产者,消费者模式。发布者是生产,将输出发布到数据中心,订阅者是消费者,订阅自己感兴趣的数据。当有数据到达数据中心时,就把数据发送给对应的订阅者。
简单的java spring boot框架,采用java17,通过mqtt订阅数据,利用生产者消费者模式处理,之后通过http发布,并将接收和发送的数据都保存在数据库中。注意需要修改mqtt地址和数据库地址为可正常连接的地址才能运行。
测试普通队列模式--点对点--消费者 #region 测试工作队列模式-- 一个生产者多个消费者 --生产端 #region 发布/订阅模式 #region 路由模式 #region 主题模式
yo 文件/正常退出并断开连接文档测试指标分布式经纪人分区复制同步生产者消费者API 多段文件超时消息传递语义可用性和耐用性保证数据保留消费者实现中的 Mmap 延迟审计v0.2 偏移量加载以前写入的数据而不是在启动时...
调停者模式将对象的行为和协作抽象化,把 对象在小尺度的行 为上与其他对象的相互作用分开处理。 18、MEMENTO —同时跟几个 MM 聊天时,一定要记清楚刚才跟 MM 说了些什么话,不然 、 MM 发现了会不高兴的哦,...
文章目录rabbitmq7种实现方式搭建maven项目引入依赖创建连接简单队列消息生产者消息消费者work queues 工作队列生产者消费者能者多劳(公平分发):消费能力强则消费更多消息Publish/Subscribe 发布订阅模式生产者...
在业务逻辑的异步处理,系统解耦,分布式通信以及控制高并发的场景下,消息队列有着...并比较了两种模式:生产者-消费者模式和发布-订阅模式的区别。AMQP作为比JMS更加高级的消息协议,支持更多的消息路由和消息模式。
点对点模式不需要生产者和消费者同时在线。队列会一直保留收到的消息,直到有消费者把它消费掉。当消费者可用时,队列会把消息发给每一个消费者,但每个消息只会发给一个消费者,队列使用轮询算法向每一个消费者分发...
在本篇教程中,我们要做的跟之前完全不一样 —— 分发一个消息给多个消费者(consumers)。这种模式被称为” 发布 / 订阅”。 交换器(Exchanges) 在本教程的前面部分,我们发送和接收到队列中的消息,现在是时候在...
本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目服务器间异步访问。 一. 简介 ...4) 定义消息发布者(生产者) 5) 定义消息订阅者(消费者) 6) Spring mvc配置 7) 实例测试
本项目基于Spring这一平台,整合流行的开源消息队列中间件ActiveMQ,实现一个向ActiveMQ添加和读取消息的功能。并比较了两种模式:生产者-消费者模式和发布-订阅模式的区别。