mq消息队列之间的区别(消息队列MQ基本介绍)

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

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

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

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

mq消息队列之间的区别(消息队列MQ基本介绍)(1)

消息队列两种模式

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

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

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

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

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

mq消息队列之间的区别(消息队列MQ基本介绍)(2)

应用场景以及特点

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

异步

mq消息队列之间的区别(消息队列MQ基本介绍)(3)

应用解耦

mq消息队列之间的区别(消息队列MQ基本介绍)(4)

流量削锋

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

mq消息队列之间的区别(消息队列MQ基本介绍)(5)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页