2

架构设计(六):引入消息队列 - Grey Zeng

 1 year ago
source link: https://www.cnblogs.com/greyzeng/p/16990689.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

架构设计(六):引入消息队列

作者:Grey

原文地址:

博客园:架构设计(六):引入消息队列

CSDN:架构设计(六):引入消息队列

消息队列是一个支持持久化的组件,数据存储在内存中,支持异步通信。它作为一个缓冲器,分配异步请求。消息队列的基本架构很简单,包含两个部分

第一部分:输入服务,称为生产者/发布者,创建消息,并将其发布到消息队列中。

第二部分:其他服务或服务器,称为消费者/订阅者,连接到队列,并执行消息所定义的动作。

img

消息队列可以实现服务之间的解耦,成为构建可扩展和可靠的应用程序的首选架构。有了消息队列,生产者可以在消费者无法处理消息时将其发布到队列中。即使生产者不可用,消费者也可以从队列中读取消息。

以下示例说明了消息队列的使用方式

假设某个应用是用来处理照片定制,包括剪裁、锐化、模糊等。这些定制任务需要相对长的时间来完成。

应用服务器(生产者)将「照片处理作业」发布到消息队列中。照片处理程序(消费者)从消息队列中接过作业,异步地执行照片定制任务。生产者和消费者可以独立扩展。当队列的规模变大时,会增加更多的消费者实例以减少处理时间。然而,如果队列大部分时间是空的,可以减少生产者的实例数量。

参考资料#

System Design Interview


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK