微服务必备知识:Apache RocketMQ

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构。目前市面上比较有名的中间件有:RabbitMQ、kafka、RocketMQApache RocketMQ是分布式消息和流数据平台,一个这函证具备低延退、高并发、高可用、高可靠,可支撑万亿级数据洪峰的分布式消息中间件,是企业数字化转型必须的核心、是基础性软件,已服务于阿里巴巴逾十年。

所属技术领域:

微服务

|名词定义|

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构。目前市面上比较有名的中间件有:RabbitMQ、kafka、RocketMQ

Apache RocketMQ是分布式消息和流数据平台,一个这函证具备低延退、高并发、高可用、高可靠,可支撑万亿级数据洪峰的分布式消息中间件,是企业数字化转型必须的核心、是基础性软件,已服务于阿里巴巴逾十年。

|发展历程|

阿里巴巴最早是一个电商平台,内部有一套系统,同时承载了会员、订单、商品等应用,有上百人在维护,每天的提交和发布都非常复杂。为了更好的支撑快速发展的业务,阿里在2007年启动了“五彩石”项目,通过横向和纵向两个维度将这一单体应用拆分出用户中心,商品中心,交易中心,评价中心等平台型应用,这时候系统和系统之间的交互就变得非常重要。通常,系统和系统之间有两种交互方式,一种是同步方式,通过rpc来实现,一种是异步,阿里的第一代消息引擎 Notify就是基于这个背景下产生的,用于淘宝B2C业务系统和系统之间的消息流转。

紧接着在2010年,阿里B2B业务开始大规模使用 ActiveMQ,并打造了自己的消息引擎Napoli。但无论是Notify,还是Napoli,他们的存储都是基于关系型数据库,最大的隐患是容易在磁盘上造成堆积。

2011年,LinkedIn开源了自己的分布式消息引擎Kafka,Kafka拥有强大的日志处理和处理磁盘堆积的能力,随后我们用Java重写了Kafka的核心逻辑,并以MetaQ项目进行开源。但MetaQ在遇到淘宝海量数据交易场景时,出现了非常多的问题。为了解决这些问题,我们把MetaQ的存储从原先的partition全量数据存储模式优化为目录和数据文件分离的模式,这个版本我们命名为MetaQ2.0。但这种优化不能从根本上解决我们在大规模数据下遇到的问题,比如在系统宕机和扩容方面出现的Rebalance问题,随后我们决定去完全重写MetaQ2.0,才有了第一代的RocketMQ,为了体现RocketMQ是源于MetaQ 2.0,我们将其命名为RocketMQ 3.0。

2016年,我们在阿里云上线了RocketMQ的商业化产品阿里云消息队列MQ,帮助用户方便快捷的获得RocketMQ的消息发送和流数据处理能力。同年11月,我们将RocketMQ捐赠给Apache(版本升级为4.0),目的是希望更多的企业开发者加入到社区来共同发展RocketMQ。孵化期间,我们发现来自东南亚、包括美国的一些银行开始使用RocketMQ在跑PoC,这让我们感到非常欣慰。我们希望在未来,能够将RocketMQ建设成可以比肩Hadoop那样的生态。

2017年,不到10个月的时间里,RocketMQ从 Apache 毕业,成为Apache下的顶级项目,和 Hadoop 同规格。基于RocketMQ在各类场景下的丰富实践,我们将互联网业务对消息的需求进行抽象,形成了一套能满足大多数业务场景的标准模型,逐步发展成与厂商无关、平台无关的分布式消息及流处理领域的应用开发标准–OpenMessaging,并与10月进入Linux基金会。进入到2018年,团队和社区开始着手思考和构建下一代消息引擎– Apache RocketMQ 5.0,并大力发展Messaging生态,也希望这方面的专家能够加入我们,加入社区,一起打造OpenMessaging领域新标准。

|技术特点|

• 支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型
• 在一个队列中可靠的先进先出(FIFO)和严格的顺序传递
• 支持拉(pull)和推(push)两种消息模式
• 单一队列百万消息的堆积能力
• 支持多种消息协议,如 JMS、MQTT 等
• 分布式高可用的部署架构,满足至少一次消息传递语义
• 提供 docker 镜像用于隔离测试和云集群部署
• 提供配置、指标和监控等功能丰富的 Dashboard

|资料来源|

阿里云大学-视频网站
CSDN(发展历程部分)

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
5月前
|
消息中间件 人工智能 Apache
Apache RocketMQ 中文社区全新升级!
RocketMQ 中文社区升级发布只是起点,我们将持续优化体验细节,推出更多功能和服务,更重要的是提供更多全面、深度、高质量的内容。
603 21
|
4月前
|
消息中间件 存储 Java
RabbitMQ 在微服务架构中的高级应用
【8月更文第28天】在微服务架构中,服务之间需要通过轻量级的通信机制进行交互。其中一种流行的解决方案是使用消息队列,如 RabbitMQ,来实现异步通信和解耦。本文将探讨如何利用 RabbitMQ 作为服务间通信的核心组件,并构建高效的事件驱动架构。
174 2
|
4月前
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
290 2
|
6月前
|
消息中间件 安全 API
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(1)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
312 1
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(1)
|
6月前
|
消息中间件 安全 Apache
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(4)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
193 1
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(4)
|
6月前
|
消息中间件 安全 Apache
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(2)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
263 0
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(2)
|
3月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
在 Apache Dubbo 突破 4w Star 之际,Apache Dubbo 团队正式宣布,Dubbo 3.3 正式发布!作为全球领先的开源微服务框架,Dubbo 一直致力于为开发者提供高性能、可扩展且灵活的分布式服务解决方案。此次发布的 Dubbo 3.3,通过 Triple X 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。
156 10
|
5月前
|
消息中间件 安全 API
Apache RocketMQ ACL 2.0 全新升级
RocketMQ 作为一款流行的分布式消息中间件,被广泛应用于各种大型分布式系统和微服务中,承担着异步通信、系统解耦、削峰填谷和消息通知等重要的角色。随着技术的演进和业务规模的扩大,安全相关的挑战日益突出,消息系统的访问控制也变得尤为重要。然而,RocketMQ 现有的 ACL 1.0 版本已经无法满足未来的发展。因此,我们推出了 RocketMQ ACL 2.0 升级版,进一步提升 RocketMQ 数据的安全性。本文将介绍 RocketMQ ACL 2.0 的新特性、工作原理,以及相关的配置和实践。
13665 13
|
4月前
|
消息中间件 Java RocketMQ
微服务架构师的福音:深度解析Spring Cloud RocketMQ,打造高可靠消息驱动系统的不二之选!
【8月更文挑战第29天】Spring Cloud RocketMQ结合了Spring Cloud生态与RocketMQ消息中间件的优势,简化了RocketMQ在微服务中的集成,使开发者能更专注业务逻辑。通过配置依赖和连接信息,可轻松搭建消息生产和消费流程,支持消息过滤、转换及分布式事务等功能,确保微服务间解耦的同时,提升了系统的稳定性和效率。掌握其应用,有助于构建复杂分布式系统。
73 0
|
6月前
|
消息中间件 Apache 数据安全/隐私保护
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(3)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
127 0
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(3)

推荐镜像

更多