技术盘点:消息中间件的过去、现在和未来

作者阿里云代理 文章分类 分类:linux图文教程 阅读次数 已被围观 671

作者介绍:林清山(花名:隆基)


操作体系、数据库、中间件是根底软件的三驾马车,而音讯行列归于最经典的中间件之一,已经有30多年的历史。其发展首要阅历了以下几个阶段:


第一个阶段,2000年之前。80年代诞生了第一款音讯行列是 The Information Bus,第一次提出发布订阅形式来处理软件之间的通讯问题;到了90年代,则是世界商业软件巨头的年代,IBM、Oracle、Microsoft纷纷推出了自己的 MQ,其间最具代表性的是IBM MQ,价格昂贵,面向高端企业,如大型金融、电信等企业;这类商业MQ一般选用高端硬件,软硬件一体机交给,MQ本身的架构是单机架构。


第二阶段,2000~2007年。进入00年代后,初代开源音讯行列崛起,诞生了JMS、AMQP两大标准,与之对应的两个完成分别为 ActiveMQ、RabbitMQ,开源极大的促进了音讯行列的流行度,下降了运用门槛,逐渐成为了企业级架构的标配。比较于今日而言,这类MQ首要仍是面向传统企业级运用,面向小流量场景,横向扩展才干比较弱。


第三阶段,2007~2018年。PC互联网、移动互联网爆发式发展。由于传统的音讯行列无法接受亿级用户的访问流量和海量数据传输,诞生了互联网音讯中间件,中心才干是全面选用分布式架构、具有很强的横向扩展才干,开源典型代表有 Kafka、RocketMQ,还有淘宝的 Notify。Kafka 的诞生还将音讯中间件从Messaging领域延伸到了 Streaming 领域,从分布式运用的异步解耦场景延伸到大数据领域的流存储和流核算场景。


第四阶段,2014~至今。IoT、云核算、云原生引领了新的技能趋势。面向IoT的场景,音讯行列开始从云内服务端运用通讯,延伸到边际机房和物联网终端设备,支持MQTT等物联网标准协议也成了各大音讯行列的标配。


跟着云核算的普及,云原生的理念家喻户晓,各种云原生代表技能层出不穷,包含容器、微服务、Serverless、Service Mesh、事情驱动等。云原生的中心问题是如何从头规划运用,才干充分隔释云核算的技能盈利,完成事务成功最短路径。


音讯行列本身作为云核算的PaaS服务之一,要进一步发挥“解耦”的才干,协助事务构建现代化运用,这里最要害的一个才干演进是Eventing的演进。经过将音讯升华为“事情”,供给面向标准 CloudEvent 的编列过滤、发布订阅等才干构建更大范围的解耦,包含云服务事情和事务运用的解耦、跨安排SaaS事务事情的解耦、留传运用和现代化运用的解耦等,一起事情驱动也是天然符合云核算 Serverless 函数核算的范式,是运用 Serverless 化演进的催化剂。


 

云原生对于音讯中间件而言,还有另一层含义便是音讯行列本身架构的云原生化演进,如何充分发挥云的弹性核算、存储、网络,让自己获得更强的技能指标和 Serverless 弹性才干。


音讯中间件在技能上有哪些进展与突破?


阿里云 MQ 是依据 RocketMQ 打造的一站式音讯服务,以 RocketMQ 作为一致内核,完成业界标准、干流的音讯协议,包含MQTT、Kafka、RabbitMQ、AMQP、CloudEvent、HTTP等,满意客户多样化场景诉求。为了提高易用性,咱们分别对不同的协议进行了产品化,以独立产品的形式供给音讯服务(如阿里云RabbitMQ、阿里云Kafka),开箱即用、免运维、完备的可观测体系,协助开源客户无缝迁云。


在阅历数万企业客户多样化场景的继续打磨,数年的超大规模云核算的生产实践,咱们的内核RocketMQ逐渐往一体化架构和云原生架构演进。


1. 一体化架构


微服务、大数据、实时核算、IoT、事情驱动等技能潮流,不断的扩展音讯的事务鸿沟,业界有不同的音讯行列满意不同的事务场景,比方RabbitMQ偏重满意微服务场景,Kafka则是偏重于满意大数据、事情流场景,EMQ则是满意了IoT笔直领域场景。而跟着数字化转型的深化,客户的事务往往一起涉及穿插场景,比方来自物联网设备的音讯、或许微服务体系发生的事务音讯要进行实时核算,如果是引进多套体系,会带来额定的机器、运维、学习等本钱。


在曩昔“分”往往是技能完成的退让,而现在“合”才是用户的真正需求。RocketMQ 5.0依据一致Commitlog扩展多元化索引,包含时间索引、百万行列索引、事务索引、KV索引、批量索引、逻辑行列等技能。在场景上一起支撑了RabbitMQ、Kafka、MQTT、边际轻量核算等产品才干,真正完成了“音讯、事情、流”,“云边端”一体化架构。


 


2. 云原生架构


云原生架构是指云上原生的架构,云核算是云原生的“源动力”,脱离了云核算谈云原生好像坐而论道。RocketMQ 曩昔几年正是立足于阿里云超大规模的云核算生产实践,协助数万企业完成数字化转型的经历中汲取营养,从而完成互联网音讯中间件到云原生音讯中间件的进化。这也是 RocketMQ 和其他音讯中间件最大的差异,他是实践出来的云原生架构,下面咱们盘点一下 RocketMQ 在云原生架构的要害技能演进。


RocketMQ 是 2011 年诞生于淘宝中心电商体系,一开始是定坐落服务集团事务,面向单一超大规模互联网企业规划。本来的架构并不能很好的满意云核算的场景,有不少的痛点,比方重型 SDK,客户端逻辑杂乱、多语言 SDK 开发本钱高、商业特性迭代慢;弹性才干差,核算存储耦合、客户端和物理行列数耦合、行列数无法扩展到百万级、千万级;而其他干流的开源音讯项目也相同未进行云原生架构的转型,比方 RabbitMQ 单行列才干无法横向扩展、Kafka 弹性扩容会面对很多的数据拷贝均衡等,都不适用于在公共云为大规模客户供给弹性服务。


为此,RocketMQ 5.0 面向云核算的场景进行从头规划,期望从架构层面处理根本性问题,对客户端、Broker到存储引擎全面升级:


image.gif

客户端轻量化。RocketMQ 5.0 SDK 把很多逻辑下沉到服务端,代码行数精简三分之二,开发维护多语言 SDK 的本钱大幅度下降;轻量的 SDK 更容易被 Service Mesh、Dapr等云原生代表技能集成。


可分可合的存算别离架构。用户依据不同的场景诉求,既可以同一进程发动存储和核算的功能,也可以将两者分隔布置。分隔布置后的核算节点可以做到“无状况”,一个接入点可署理一切流量,在云上结合新硬件内核旁路技能,可以下降别离布置带来的功能及推迟问题。而挑选“存储核算一体化”架构,则具有“就近核算”的优势,功能更优。在云上多租、多VPC杂乱网络、多协议接入方法的场景下,选用存储核算别离形式可以避免后端存储服务直接暴露给客户端,便于完成流量的管控、隔离、调度、权限管理、协议转换等。


可是有利必有弊,存算别离也一起带来了链路变长、推迟增大、机器本钱上升等问题,运维也没得到简化,除了要运维有状况存储节点外,还要多运维无状况核算节点。其实在大多数简略音讯收发场景,数据链路基本上便是写Log、读Log,无杂乱核算逻辑(核算逻辑和数据库比较太简略),这个时候优选存储核算一体化架构,简略够用、功能高、推迟低。特别是在大数据传输场景下,存算一体可以极大下降机器及流量本钱,这个从 Kafka 的架构演进也可以得到印证。总的来说不要为了存算别离而别离,仍是要回归客户、事务场景的实质诉求。


弹性存储引擎。面向 IoT 海量设备、云上大规模小客户场景,咱们引进 LSM 的 KV 索引,完成单机海量行列的才干,行列数量可以无限扩展;为了进一步开释云存储的才干,咱们完成分级存储,音讯存储时长从3天提高到月、年级别,存储空间可以无限扩展,一起还别离了冷热数据,冷数据存储本钱下降了80%。


Serverless化。在老架构里面,客户感知物理行列,物理行列绑定固定存储节点,强状况。Broker、客户端、物理行列的扩缩容相互耦合,负载均衡粒度是行列级,对Serverless的技能演进很不友爱。为了完成极致弹性 Serverless,RocketMQ 5.0 对逻辑资源和物理资源做进一步的解耦。


在 Messaging/无序音讯的场景,客户指定 Topic 进行音讯无序收发,新架构对客户端屏蔽行列概念,只暴露逻辑资源 Topic。负载均衡粒度从行列级到音讯级,完成了客户端的无状况化,客户端、服务端弹性弹性解耦。


在 Streaming/顺序音讯的场景,客户端需求指定 Topic 下的某个行列(也称分区)进行音讯顺序收发。在新架构里,对客户端屏蔽物理行列,引进逻辑行列概念,一个逻辑行列经过横向分片和纵向分段,分散在不同的物理存储节点。横向分片处理了高可用问题,同一个逻辑行列的多个分片多点随机可写,依据 Happen before 的原理保序,秒级 Failover,无需主备切换;纵向分段,处理逻辑行列的扩容问题,经过多级行列映射,完成 0 数据搬迁的秒级扩容,逻辑资源和物理资源的弹性弹性解耦。


如何看待音讯领域生态玩家?


在云原生、IoT、大数据的趋势引导下,音讯成为现代化运用架构的刚需,运用场景更加广泛,可运用于微服务的异步解耦、事情驱动、物联网设备数据上下行、大数据流存储、轻量流核算等场景。客户需求旺盛、市场活跃,吸引了不少厂商加入比赛。


从好的视点来看,厂商的充分竞赛,会进一步激活创新,培养更多用户,一起做大音讯的市场,用户看起来也有更多的挑选;


从坏的视点来看,未来部分竞赛失利的音讯行列会进入停滞期、下线期,用户的运用就会面对搬迁大改造和稳定性风险,所以主张用户在满意本身事务需求的情况下,尽可能挑选标准接口、协议的方法接入,或许直接运用业界事实标准的音讯行列。


音讯中间件未来的发展趋势是什么?


跟着 IoT、5G 网络的继续发展,数据量增速28%,估计到2025年物联网设备将到达 400 亿台,进入万物互联的年代。物联网年代的音讯存储量和核算量会爆发式增长,音讯体系将面对巨大的本钱压力。未来音讯体系,需求深挖新硬件的盈利,比方持久内存、DPU等技能,选用软硬结合的方法深度优化,将音讯的存储核算本钱进一步下降。


IoT年代还有另外一个很重要的趋势是边际核算,Gartner 估计到 2025 年,75%的数据将在传统数据中心或云环境之外进行处理,音讯体系需求进一步轻量化、下降资源消耗以适应边际核算环境。这也意味着,音讯中间件的一体化架构,要具有杰出的插件化规划,可以依据场景的特点完成多形状输出。比方公共云的形状可以和公共云的根底设施深度集成,充分利用云盘、对象存储增强存储才干,集成日志服务、运用监控等服务提升可观测才干;而边际核算的形状则是以最小的资源代价输出中心存储、轻量核算的才干,简略够用即可。


近几年云核算高速发展,得益于全球范围内很多企业在进行数字化转型,经过事务在线化、事务数据化、数据智能化来提升企业竞赛力。数据化转型也伴跟着商业思维的转型,越来越多的企业选用“事情驱动”的形式来构建商业逻辑和数字化体系。


Gartner猜测,未来超越60%的新型数字化商业的处理方案会选用“事情驱动”形式,从事务视点看,“事情驱动”的形式可以协助企业实时呼应客户,抓住更多的商业机会,发明增量价值;从技能视点看,“事情驱动”的架构,可以以动态、灵活、解耦的方法来链接跨安排、跨环境的异构体系,天然适合用于构建大型的跨安排数字化商业生态。


为了应对这个趋势,Messaing 往 Eventing 演进,呈现了 EventBridge (EventBroker)的产品形状。在 EventBridge 里,“事情”这个概念成为一等公民,事情的发布者和订阅者不耦合任何一种详细的音讯行列SDK和完成。EventBroker 环绕标准的 CloudEvent 标准构建更加泛化的发布订阅形式,可以链接一切跨安排、跨环境的异构事情源和事情处理方针。


 

现在以“事情驱动”构建的数字化商业生态才刚起步,未来 EventBridge 将环绕事情这一笼统层次完成更强壮的才干,比方事情的全链路可观测、事情分析核算、低代码开发等特性,协助企业全面落地云年代的“事情驱动”架构。


本公司销售:阿里云新/老客户,只要购买阿里云,即可享受折上折优惠!>

我有话说: