龙空技术网

消息队列(MQ)基本介绍

拔土豆的程序员 277

前言:

此刻同学们对“队列 js”大概比较看重,同学们都需要分析一些“队列 js”的相关内容。那么小编同时在网络上汇集了一些对于“队列 js””的相关内容,希望咱们能喜欢,你们一起来了解一下吧!

“消息队列”是指在消息的传输过程中保存消息的容器。队列的主要目的是:

提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。

消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。例如:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ

主要角色Producer:消息生产者,负责产生和发送消息到 Broker。Broker:消息处理中心。负责消息存储、确认、重试等,一般其中会包含多个 queue。Consumer:消息消费者,负责从 Broker 中获取消息,并进行相应处理。消息队列两种模式

JM S规范目前支持两种消息模型:点对点(point to point, queue)和发布/订阅(publish/subscribe,topic)。

1.点对点模式:不可重复消费

一个消息只能由一个消费者消费,此时消息在队列上会被移除,其他消费者无法处理该消息。多个生产者可以向同一个消息队列发送消息如果消费者处理消息失败,需要将消息重新放回队列,其他消费者可以继续处理。

2.发布/订阅模式:可重复消费,单个消息可以被多个订阅者并发的获取和处理

临时(ephemeral)订阅,这种订阅只有在消费者启动并且运行的时候才存在。一旦消费者退出,相应的订阅以及尚未处理的消息就会丢失。持久(durable)订阅,这种订阅会一直存在,除非主动去删除。消费者退出后,消息系统会继续维护该订阅,并且后续消息可以被继续处理。应用场景以及特点

异步,应用解耦,流量削锋。

异步应用解耦流量削锋

利用消息队列做一个通用的”载体”。

标签: #队列 js