架构设计(六):引入消息队列
作者:Grey
原文地址:
博客园:架构设计(六):引入消息队列
CSDN:架构设计(六):引入消息队列
消息队列是一个支持持久化的组件,数据存储在内存中,支持异步通信。它作为一个缓冲器,分配异步请求。消息队列的基本架构很简单,包含两个部分
第一部分:输入服务,称为生产者/发布者,创建消息,并将其发布到消息队列中。
第二部分:其他服务或服务器,称为消费者/订阅者,连接到队列,并执行消息所定义的动作。
消息队列可以实现服务之间的解耦,成为构建可扩展和可靠的应用程序的首选架构。有了消息队列,生产者可以在消费者无法处理消息时将其发布到队列中。即使生产者不可用,消费者也可以从队列中读取消息。
以下示例说明了消息队列的使用方式
假设某个应用是用来处理照片定制,包括剪裁、锐化、模糊等。这些定制任务需要相对长的时间来完成。
应用服务器(生产者)将「照片处理作业」发布到消息队列中。照片处理程序(消费者)从消息队列中接过作业,异步地执行照片定制任务。生产者和消费者可以独立扩展。当队列的规模变大时,会增加更多的消费者实例以减少处理时间。然而,如果队列大部分时间是空的,可以减少生产者的实例数量。
参考资料
System Design Interview