Redis通过 、`SUBSCRIBE`等命令实现发布与订阅模式。 举例:QQ群的公告,单个发布者,多个收听着。 发布/订阅 将消息发布到指定的频道。 . 可同时订阅多个频道。 . 取消订阅指定的频道,如果不指定频道则会取消订阅所有频道。 . 订阅一个或多个符合给定模式的频道,每个模式以" "作为匹 ...
分类:
其他好文 时间:
2018-12-25 21:48:02
阅读次数:
124
初步认识观察者模式 观察者模式又称订阅模式 报社负责出报纸, 你订阅了该报社的报纸,那么只要报社发布了新的报纸就会通知你或者发到你手上 如果你不想再读报纸就可以取消订阅, 报社就发布新报纸就不会通知你了 观察者模式是一对多的关系 模式的结构图 模式包含四个角色 抽象被观察者角色:也就是一个抽象主题, ...
分类:
其他好文 时间:
2018-12-22 22:05:54
阅读次数:
233
//发布订阅模式 class EventEmiter { constructor() { //维护一个对象 this._events = { } } on(eventName, callback) { if (this._events[eventName]) { //如果有就放一个新的 this._ ...
分类:
其他好文 时间:
2018-12-08 19:13:04
阅读次数:
219
观察者模式 观察者模式又称发布-订阅模式,其定义了一种多对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能自动更新自己。 观察者模式的动机 将一个系统分割成一系列相互协作的类有一个很不好的副作用就是需要维护相关对象间的一致性。 我们不 ...
分类:
其他好文 时间:
2018-12-03 14:04:21
阅读次数:
197
一、前言 发布订阅模式,基于一个主题/事件通道,希望接收通知的对象(称为subscriber)通过自定义事件订阅主题,被激活事件的对象(称为publisher)通过发布主题事件的方式被通知。 就和用户订阅微信公众号道理一样,一个公众号可以被多个用户同时订阅,当公众号有新增内容时候,只要发布就好了,用 ...
分类:
Web程序 时间:
2018-12-01 20:08:12
阅读次数:
160
观察者模式(Observer Pattern)也称发布订阅模式,它是一种在项目中经常使用的模式。 定义: 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。 观察者模式的类图如下所示。 观察者模式具体有以下4个角色。 抽象主题(Subject)角 ...
分类:
其他好文 时间:
2018-12-01 00:17:28
阅读次数:
160
消息中间件解决方案续 上一篇中我们讲到了在Spring工程中基本的使用消息中间件,这里就不在继续赘述。 针对消息中间件,这篇讲解两个我们常遇到的问题。 问题1:如果我们的消息的接收过程中发生异常,怎么解决? 问题2:发布订阅模式(Topic)下如果消费端宕机引起的消息的丢失,怎么解决? 问题解决方案 ...
分类:
其他好文 时间:
2018-11-30 21:47:45
阅读次数:
195
观察者模式,又被称为发布 订阅模式或消息机制,定义了一种依赖关系,解决了主体对象与观察者之间功能耦合。 虽然说观察者模式,又被称为发布 订阅模式,但是实际上它们之间存在差异的,区别在于调度的地方不同。 上图: 总结 1. 从两张图片可以看到,最大的区别是调度的地方。虽然两种模式都存在订阅者和发布者( ...
分类:
其他好文 时间:
2018-11-25 13:26:09
阅读次数:
140
将redis发布订阅模式用做消息队列和rabbitmq的区别: 可靠性 可靠性 redis :没有相应的机制保证消息的可靠消费,如果发布者发布一条消息,而没有对应的订阅者的话,这条消息将丢失,不会存在内存中; rabbitmq:具有消息消费确认机制,如果发布一条消息,还没有消费者消费该队列,那么这条 ...
分类:
其他好文 时间:
2018-11-23 21:04:08
阅读次数:
267
rabbitmq: 准备: · 安装rabbitmq; brew install rabbitmq · php需要引入php-amqplib composer require php-amqplib/php-amqplib 注意: · 手动ack customer 端 basic_consume n... ...
分类:
其他好文 时间:
2018-11-22 18:10:47
阅读次数:
197