声明 文章不是完全的原创,部分例子是收集网络资料
首先 我先引入一个大家熟知的观点:Reids可以作为消息队列来使用
redis提供了两种方式来做消息队列,一种是生产者消费者模式,一种是发布订阅模式。
本篇文章将从 异步,解耦,分布式,可靠四部分来探讨Redis中的消息队列以及应用场景
异步
异步的使用场景【符合我们的真实的世界,真实世界本来就是异步的】,生活中大部分的使用都是基于异步的,比如发送邮件与回复邮件的请求响应模型。
一个service与另外一个service有三种交互方式:命令(Commands)、事件(Events)以及查询(Queries)。一次请求可以理解为由主服务与触发服务和关联服务组成。
Commands 。命令是一个操作。希望在另一个服务中执行某些操作的一个请求。 会改变系统状态的东西。 命令期待有响应。
Events 。事件既是一个事实也是一个触发器。 发生了一些事情,表示为通知。
Queries 。查询是一个请求,是一个查找一些东西的请求(request)。重要的是,查询不会使得系统状态发生改变。
解耦
解耦的基础含义倡导一种是由上而下,分而治之的思想。
解耦又是消息队列最本质的目的。把消息的送达和处理分开,才真正实现消息系统的解耦。
基于消息的模型,关心的是通知,而非处理 。只关心核心流程,多个任务的情况下,发送通知就行了。
经典的生产者消费者模式的消息模型,通过Broker分离生产与消息,Broker简单来说就是消息服务器,负责消息的接受,存取。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。