惠州市住房和城乡建设厅网站,网站建设的初步预算,网站建设与优化标准,响应式网站建设企业作者#xff1a;隆基
2022 年#xff0c;RocketMQ 5.0 的正式版发布。相对于 4.0 版本而言#xff0c;架构走向云原生化#xff0c;并且覆盖了更多业务场景。
消息队列演进史
操作系统、数据库、中间件是基础软件的三驾马车#xff0c;而消息队列属于最经典的中间件之一…作者隆基
2022 年RocketMQ 5.0 的正式版发布。相对于 4.0 版本而言架构走向云原生化并且覆盖了更多业务场景。
消息队列演进史
操作系统、数据库、中间件是基础软件的三驾马车而消息队列属于最经典的中间件之一已经有 30 多年的历史。消息队列的发展主要经历了以下几个阶段 第一阶段1980-2000 年 80 年代诞生了第一款消息队列 The Information Bus第一次提出发布订阅模式来解决软件之间的通信问题90 年代是国际商业软件巨头的时代IBM、Oracle、Microsoft 纷纷推出自己的 MQ其中最具代表性的为 IBM MQ价格昂贵面向高端企业主要是大型金融、电信等企业。该类商业 MQ 一般采用高端硬件软硬件一体机交付MQ 本身的软件架构为单机架构。第二阶段2000~2007 年 进入 00 年代后初代开源消息队列崛起诞生了 JMS、AMQP 两大标准与之对应的两个实现分别为 ActiveMQ、RabbitMQ他们引领了初期的开源消息队列技术。开源极大促进了消息队列的流行降低了使用门槛技术普惠化逐渐成为企业级架构的标配。相比于今天而言这类 MQ 主要面向传统企业级应用和小流量场景横向扩展能力较弱。第三阶段2007~2017 年 PC 互联网、移动互联网爆发式发展。由于传统的消息队列无法承受亿级用户的访问流量与海量数据传输诞生了互联网消息中间件核心能力是全面采用分布式架构具备很强的横向扩展能力开源典型代表有 Kafka、RocketMQ闭源的有淘宝 Notify。Kafka 的诞生还将消息中间件从消息领域延伸到了流领域从分布式应用的异步解耦场景延伸到大数据领域的流存储与流计算场景。第四阶段2014~至今 云计算、IoT、大数据引领了新的浪潮。
互联网时代的 RocketMQ
阿里的电商系统最初是个庞大的单体巨石应用在研发效率、稳定性方面都无法满足淘宝和天猫飞速的发展。为了解决问题2008 年淘宝与天猫发起了一次最大规模的架构升级启动了“五彩石”项目将单体应用拆分为分布式应用同时抽象淘宝、天猫的共同底座——业务中台包括交易中心、商品中心、买家中心等。在业务中台之下同时诞生了阿里中间件初期三大件包括消息、RPC、分布式数据层RocketMQ 是其中之一。 虽然在当时业界已经存在不少商业或开源的消息队列比如 IBMMQ、ActiveMQ、RabbitMQ但无一例外它们都诞生于传统企业级应用的场景无法承受互联网对于高并发、无限扩展的苛刻要求。以 RabbitMQ 为例RabbitMQ 的队列流量与存储负载都为单机无法满足业务横向扩展的需求。当时另一款具备无限横向扩展能力的消息队列是 Kafka但其主要用于日志类场景未经过大规模核心业务稳定性验证而且偏向于简单的 log 型消息队列无法满足电商对于复杂消息功能特性的诉求比如消息过滤、延迟消息等。
另一方面传统的消息队列无法解决电商业务对于分布式一致性的要求。通过消息队列实现应用异步解耦后电商业务还需要保障不同上下游应用对于订单状态要达成最终一致否则会产生大量脏数据造成业务错误。
大规模的电商系统既要高性能又要一致性传统的分布式事务技术束手无策。比如IBM MQ 虽然可以使用 XA 事务来满足分布式一致性的功能诉求但是 XA 带来的延迟与成本对于海量的互联网流量难以承受。
为了解决电商业务对于消息队列的高性能、一致性、无限扩展等需求自研消息队列成为了当时阿里唯一的出路最终互联网消息队列 RocketMQ 应运而生。 为了支持超大规模的复杂电商业务RocketMQ 面向四个方面进行了重点建设形成了四大优势能力。
① 支撑超大规模复杂业务的能力具备丰富的消息特性
每一个大型互联网公司都会有主营业务比如阿里是交易、蚂蚁是支付、饿了么是外卖以主营业务为中心扩展业务能力阿里电商是围绕交易事件建设的电商操作系统每笔交易事件都会触发不同的业务不同细分业务会关注不同类型的交易事件比如垂直市场只关注某个类目的交易事件、天猫超市只关注某个卖家的交易事件、购物车只关注下单成功的交易事件等。
RocketMQ 的 SQL 订阅提供灵活的消息过滤能力能够满足下游消费者按照不同的业务维度进行消息过滤的诉求。
在大型互联网业务中还会有各种定时事件触发场景最典型的是交易超时关闭机制阿里交易或者 12306 订票都有类似的机制。RocketMQ 的定时消息能够很方便的满足这类诉求。
② 一致性
无论是阿里交易还是蚂蚁支付都天然对数据一致性有着极高要求RocketMQ 在一致性方面也打造了多个关键特性。最具代表性的是分布式事务消息RocketMQ 是第一个实现该种特性的消息队列能够保障交易的上下游对于订单状态达到最终一致。该方案也成为异步消息一致性方案的事实标准被多个互联网公司所采纳甚至也有公司将移植到定制版的 Kafka 种。除了分布式一致性之外RocketMQ 还提供了顺序消息的特性满足顺序一致性的需求。
③ 稳定性
稳定性是交易与金融场景的基石特性也是 RocketMQ 的根本。RocketMQ 除了具备核心服务的 HA 之外还具备了全局高可用能力在阿里内部支持同城多活、异地多活、中心容灾等高阶 HA 能力。同时稳定性也不局限于数据与服务的高可用RocketMQ 从产品层面对稳定性进行了全方位的建设如消息轨迹、消息回溯、消息死信机制。
④ 高性能
在双十一的极限流量下RocketMQ 写消息延迟 4 个 9 在 1ms 内100% 在 100ms 内。RocketMQ 采用 shared-nothing 分布式架构在吞吐量方面也具备无限扩展的能力已经连续 10 年支持了双十一万亿级消息洪峰为百万级的应用实例提供低延迟消息服务。
互联网的故事还在进行云计算规模化落地的时代悄然而来。
云计算时代的 RocketMQ 5.0
2015 年RocketMQ 的首个云消息服务在阿里云上线开启了大规模的云计算实践的序幕。同时 RocketMQ 也是业界第一个提供公有云服务的开源消息队列。
在大规模的云计算业务场景下RocketMQ 面临着全新的挑战与机遇。 多样性 它不再仅服务于某一家公司的内部业务不再局限于互联网或金融企业需要实现全行业、全场景的覆盖。标准化 对于服务企业内部的自研消息队列而言无需考虑协议或 API 的标准化。但是对于云消息服务而言因为服务对象是外部企业客户据信通院统计80% 以上的企业客户已经采纳开源技术和标准技术。因此作为一款云消息服务需要提供对业界的事实标准协议、接口、SDK 的兼容才能保证客户平滑上云同时打消客户技术绑定的担忧。云原生 云原生理念深入人心消息队列要更好地帮助客户实现云原生应用架构为业务降本提效。新趋势 各种新技术的兴起包括 IoT、5G、边缘计算、事件驱动还有事件流技术。面向技术的新趋势与多样化的业务需求RocketMQ 进行了自我进化演进到 5.0 版本。
为了充分释放云的技术红利RocketMQ 5.0 在技术架构上进行了云原生的演进。从客户端到服务端都进行了全方位的改造更高弹性、可用性、更低成本。 客户端采用轻量 SDK 设计理念将原来富客户端的逻辑下沉到 Broker满足现代化应用轻量化、Serverless 的趋势。Broker 彻底进行弹性架构改造分离 RocketMQ Proxy 与 Store 层其中 Proxy 是完全无状态的计算节点专注多协议、多领域场景覆盖可以面向不同工作负载独立弹性如物联网、微服务、大数据不同场景有不同的资源诉求。Store 层则专注消息的高可用存储包括副本复制、主备切换与云存储集成。同时对 RocketMQ 的 Topic 资源进行三层解耦面向消息的Topic、面向流的 Topic 逻辑分片、面向底层存储的 Topic 物理分片每一层都可以独立弹性。在存储层引入了 Leaderless 的高可用架构Store 节点身份对等Leaderless 化0 外部依赖。多副本策略可定制可用性可靠性成本灵活组合面向多可用区、多 region 组建 Geo 高可用能力。
为了满足云时代多样化的用户需求RocketMQ 5.0 从原来的互联网业务消息中间件扩展到消息、事件、流超融合处理平台解锁更全面的能力。 在消息领域 全面拥抱云原生技术更好的弹性架构与高可用能力。
在事件领域 支持 CloudEvent 规范以事件为中心的产品新界面助力客户建设跨业务、跨组织的数字化商业生态。
在流领域 流存储增强批量特性大幅度提高数据吞吐量新增逻辑队列能力解耦逻辑资源与物理资源在流场景也具备无缝伸缩能力新增流数据库 RSQLDB提供实时事件流处理、流分析能力。
RocketMQ 基于端云一体化架构实现了完整的物联网消息队列的能力从原来的连接应用扩展到连接物联网设备。同时 RocketMQ 5.0 也继续保持极简架构的原则能够以最低的资源消耗、运维成本搭建服务适合边缘计算。
除了的产品核心能力之外RocketMQ 5.0 积极建设开源生态。 一方面是应用架构生态的建设既有经典的开源项目、规范的集成比如 JMS、AMQP 等也有云原生技术生态的集成比如 CloudEvents、Dapr、Envoy。同时 RocketMQ 也会进一步发力数据架构生态全链路集成大数据的摄入、数据存储、数据处理、数据分析组件从离线大数据到实时大数据。
RocketMQ 学习社区体验地址
RocketMQ 学习社区重磅上线AI 互动一秒了解 RocketMQ 功能源码。RocketMQ 学习社区是国内首个基于AIGC提供的知识服务社区旨在成为 RocketMQ 学习路上的“贴身小二”。 PSRocketMQ 社区以 RocketMQ 5.0 资料为主要训练内容持续优化迭代中回答内容均由人工智能模型生成其准确性和完整性无法保证且不代表 RocketMQ 学习社区的态度或观点。 立即体验 RocketMQ 学习社区建议 PC 端体验完整功能 https://rocketmq-learning.com/