RocketMQ的学习历程(一)----MQ简介

这篇具有很好参考价值的文章主要介绍了RocketMQ的学习历程(一)----MQ简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.MQ的简单了解

1.1.MQ简介:

MQ,message Queue,是一种提供消息队列服务的中间件,也称消息中间件,是一套提供了信息生产,储存,消费全过程的API软件系统。

1.2.MQ的主要用途:

  1. 流量削峰

MQ的流量削峰是指在系统面临高并发请求时,使用MQ来缓冲请求,避免数据库或其他服务承受过大的压力。

例如,在双十一等活动中,用户的下单、抢购、支付等操作会导致系统的峰值流量集中在短时间内,如果直接访问数据库,可能会造成数据库宕机或响应缓慢。这时候,可以使用MQ来接收用户的请求,然后按照一定的速率消费消息,从而平滑系统的负载。这样既可以保证用户的请求不会丢失,也可以提高系统的可用性和稳定性。

流量削峰实际上是消息队列最重要的功能,说直白点就是可以避免服务器在高峰时间段可能发生的宕机

  1. 异步解耦

MQ解耦合是指使用MQ来降低系统之间的依赖关系,使得系统之间可以异步地交换数据和消息。例如,如果A系统需要向B、C、D系统发送数据,如果不使用MQ,那么A系统就需要直接调用B、C、D系统的接口,这样会增加A系统的复杂度和风险,如果其中一个系统出现故障或变动,会影响A系统的正常运行。如果使用MQ,那么A系统只需要将数据发送到MQ中,然后由B、C、D系统从MQ中拉取数据,这样就可以实现A系统和B、C、D系统的解耦合。这样既可以提高系统的可扩展性和容错性,也可以减少系统的开发和维护成本

1.3.MQ的主流产品:

  1. ActiveMQ
    很老的玩意了,据说已经g了
  2. RabbitMQ
    RabbitMQ是一款使用Erlang语言开发的,实现AMQP (高级消息队列协议)的开源消息中间件。它可以让应用程序之间通过消息来异步交互,提高系统的可靠性、可扩展性和灵活性。
  3. Kafka
    大量用于大数据领域,以高吞吐量著名,用与实时计算,日志采集场景,没用使用常见MQ协议,而是自研协议。
  4. RocketMQ
    使用java语言开发,经过阿里双十一数年考验,借鉴了kafka,同样使用自研协议。
    性能对比:图片来源https://www.bilibili.com/video/BV1cf4y157sz

RocketMQ的学习历程(一)----MQ简介

1.4.MQ常见协议:

  • AMQP(Advanced Message Queuing Protocol),高级消息队列协议,是一个提供统一消息服务的应用层标准协议,为面向消息的中间件设计。它定义了消息的格式、传输方式和交换规则,支持多种语言和平台。RabbitMQ就是基于AMQP协议的一个开源消息中间件。
  • MQTT(Message Queuing Telemetry Transport),消息队列遥测传输,是IBM开发的一个即时通讯协议,是一种二进制协议,主要用于服务器和低功耗IoT(物联网)设备间的通信。它使用发布/订阅模式,支持三种不同的服务质量(QoS)级别。
  • STOMP(Simple Text Oriented Messaging Protocol),简单文本定向消息协议,是一个基于文本的消息传输协议,可以在不同的语言和平台之间进行通信。它使用帧结构来传输数据,每个帧包含一个命令、一个可选的头部和一个可选的正文。
  • XMPP(可扩展消息处理现场协议,Extensible Messaging and Presence Protocol)是基于可扩展标记语言(XML)的协议,多用于即时消息(IM)以及在线现场探测。适用于服务器之间的准即时操作。核心是基于XML流传输,这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。
    优点:通用公开、兼容性强、可扩展、安全性高,但XML编码格式占用带宽大

1.5.RocketMQ的发展历程:

image.png

  • 2007年,阿里开始五彩石项目,Notify作为项目中的交易核心消息流转系统,应运而生,Notify系统是RocketMQ的雏形。

  • 2010年,B2B大规模使用ActiveMQ作为阿里的消息内核,阿里需要一个海量信息堆积的消息系统。

  • 2011年初,Kafka开源,淘宝借鉴,开发Meta MQ。

  • 2012年,MetaMQ发展DA到3.0水平,并将其抽象形成Rocket MQ 对其进行了开源。

  • 2015年,阿里在RocketMQ基础上,有推出了一款专门针对阿里云上消息系统Aliware MQ。

  • 2016年双十一,RocketMQ承载了万亿级消息的流转,跨越了一个新的里程碑。11月28日,阿里巴巴向Apache 软件基金会捐赠RocketMQ,成为Apache孵化项目。

  • 2017年9月25日,Apache宣布RocketMQ孵化成为Apache顶级项目(TLP),成为国内首个互联网中间件在Apache上的顶级项目。文章来源地址https://www.toymoban.com/news/detail-414412.html

到了这里,关于RocketMQ的学习历程(一)----MQ简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MQ公共特性介绍 (ActiveMQ, RabbitMQ, RocketMQ, Kafka对比)

    本文主要介绍所有MQ框架都具备的公共特点,同时对比了一些目前比较主流MQ框架的优缺点,给大家做技术选型作参考。 MQ,MessageQueue,消息中间件 从世界上第一个MQ的诞生历程来看,它最初是为了解决通信的问题。 消息队列,又叫做消息中间件。是指用高效可靠的消息传递

    2024年02月15日
    浏览(46)
  • MQ对比选型:RocketMQ、Kafka、RabbitMQ、ActiveMQ、ZeroMQ

    本文将从多个角度全方位对比目前比较常用的几个MQ: RocketMQ Kafka RabbitMQ ActiveMQ ZeroMQ下文单独说明。 特性 RocketMQ Kafka RabbitMQ ActiveMQ 单机吞吐量 10 万级,支撑高吞吐 10 万级以上,甚至有文献称,可以达到单机百万级TPS。 万级,同ActiveMQ 万级,相对其他MQ较低。 topic 数量对吞

    2024年04月27日
    浏览(39)
  • mq 消息队列 mqtt emqx ActiveMQ RabbitMQ RocketMQ

    十几年前,淘宝的notify,借鉴ActiveMQ。京东的ActiveMQ集群几百台,后面改成JMQ。 Linkedin的kafka,因为是scala,国内很多人不熟。淘宝的人把kafka用java写了一遍,取名metaq,后来再改名RocketMQ。 总的来说,三大原因,语言、潮流、生态。 MQ这种东西,当你的消息量不大的时候,用啥

    2024年02月12日
    浏览(49)
  • MQ概述及RocketMQ在Linux下的安装和启动

    MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。 从网上可以查看到很多的关于MQ用途的叙述,但总结起来其实就以下三点: 1.限流削峰 MQ可以将系统的超量请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了

    2024年02月09日
    浏览(34)
  • 【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka

    作者简介 前言 博主之前写过一个完整的MQ系列,包含RabbitMQ、RocketMQ、Kafka,从安装使用到底层机制、原理。专栏地址: https://blog.csdn.net/joker_zjn/category_12142400.html?spm=1001.2014.3001.5482 本文是该系列的清单综述,会拉通来聊一下三大MQ的特点和各种适合的场景。 目录 1.概述 1.1.M

    2024年02月09日
    浏览(50)
  • 主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ]

    下面是 Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ 的更详细和专业的对比: 特性/功能 Kafka RabbitMQ ZeroMQ RocketMQ ActiveMQ 语言 Java Erlang C Java Java 协议 自有协议 AMQP 自有协议 自有协议 JMS 可靠性 Kafka 使用分布式日志存储,具有高可靠性和持久性 RabbitMQ 提供多种消息确认模式,具有高

    2024年02月03日
    浏览(34)
  • 消息中间件(MQ)对比:RabbitMQ、Kafka、ActiveMQ 和 RocketMQ

    前言 在构建分布式系统时,选择适合的消息中间件是至关重要的决策。RabbitMQ、Kafka、ActiveMQ 和 RocketMQ 是当前流行的消息中间件之一,它们各自具有独特的特点和适用场景。本文将对这四种消息中间件进行综合比较,帮助您在项目中作出明智的选择。 1. RabbitMQ 特点: 消息模

    2024年02月20日
    浏览(48)
  • MQ 简介-RabbitMQ

    消息队列作为高并发系统的核心组件之一,能够帮助业务系统结构提升开发效率和系统 稳定性,消息队列主要具有以下特点: 削峰填谷 :主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题 系统解耦 :解决不同重要程度、不同能力级别系统之间依赖导致一死

    2024年02月11日
    浏览(32)
  • C++线程的简单学习及了解

    此篇文章只是线程的简单了解。 文章目录 前言 一、线程的优缺点 二、C++线程库 1.thread类的简单介绍 2.线程函数参数 总结 什么是线程? 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列” 一切进程至少都有一个执行线

    2023年04月27日
    浏览(50)
  • (三)了解和运行简单的深度学习模型

    TensorFlow是一个端到端开源机器学习平台,使用数据流图进行数值计算,图中的节点代表数学运算,而图中的边则代表在这些节点之间传递的张量。TensorFlowi支持oythonJavaScript、C++、Java和Go, C#和julia等多种编程语言,让用户可以快速设计深度学习网络,将底层细节进行抽象;灵活

    2024年02月12日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包